當前位置:首頁 » 編程語言 » sql創建自動編號
擴展閱讀
web圖形化拖曳 2022-08-16 12:22:07
電腦d盤太滿了怎麼刪除 2022-08-16 12:19:26
sql中要求參數必須是數值 2022-08-16 12:17:41

sql創建自動編號

發布時間: 2022-08-06 18:25:45

A. 用sql怎麼創建能夠生成自動編號的表

在自動編號列進行如下設置在設計模式選中自動編號列在列屬性哪兒有個標識規范,選中是就行

B. mysql怎麼設置自動編號呢

1、單擊「保存更改」按鈕。

C. 如何在SQL中設置自動編號

  1. 資料庫管理系統中(sql server)中,使用設計表,把標識改成'是'

  2. 通過語句

    create table aaa

    (id int IDENTITY(1,1) not null,

    a char(10)

    )

D. sql server 2008怎麼自動編號

注意:只能為不允許空值且數據類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設置標識屬性。此外,不能為主鍵列設置標識屬性。

一。通過SQL管理工具修改列的標識屬性
1.在對象資源管理器中,右鍵單擊要更改其數據類型的列所在的表,再單擊「修改」。此時,將在表設計器中打開該表。
2.清除要更改的列的「允許空」復選框。
3.在「列屬性」選項卡中,展開「標識規范」屬性。
4.單擊「是標識」子屬性的網格單元格,然後從下拉列表中選擇「是」。
5.在「標識種子」單元格中鍵入值。此值將賦給表中的第一行。默認情況下將賦值 1。
6.在「標識增量」單元格中鍵入值。此值是基於「標識種子」依次為每個後續行增加的增量。默認情況下將賦值 1。
二。SQL語句來創建
創建表時指定自動編號的欄位
CREATE TABLE [dbo].[UserInfor](
[UserID] [int] IDENTITY(100,2) NOT NULL, --此處可指定開始值及每次增長步長
[UserName] [nchar](10) NOT NULL, )

E. SQL資料庫列自動生成編號

兩種方法:

1、用Truncate

TRUNCATETABLEname可以刪除表內所有值並重置標識值

2、用DBCC CHECKIDENT

DBCCCHECKIDENT('table_name',RESEED,new_reseed_value)如dbcc checkident ("bc_pos",reseed,1)即可,

但如果表內有數據,則重設的值如果小於最大值可能會有問題,這時可以用 dbcc checkident("bc_pos",reseed)即可自動重設值。

注意:

只能為不允許空值且數據類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設置標識屬性。此外,不能為主鍵列設置標識屬性。

(5)sql創建自動編號擴展閱讀:

關於上述標識列的引用

如果在SQL語句中引用標識列,可用關鍵字IDENTITYCOL代替,例如,若要查詢上例中ID等於1的行,

以下兩條查詢語句是等價的:

1、SELECT * FROM T_test WHERE IDENTITYCOL=1

2、SELECT * FROM T_test WHERE

F. sql資料庫建表時如何實現自動編號

可以有兩種辦法啦:1.在企業管理器裡面建:這種方法很簡單點擊選中的資料庫右鍵新建即可相信你應該會不多說了。2.在查詢分析器里建:基本思路要建表,表是要在庫里建的所以你要先引用你要使用的資料庫加進來再開始建表,以下為一個簡單實例;create
database
student
--創建一個student資料庫由於這里主要說建表所以建一個簡單的資料庫use
student
--引用資料庫studentcreate
table
test(
--創建一個test表name
varchar(20)
primary
key
indentity(1,1),--列名(欄位名)
數據類型
在此加主鍵約束就不用加非空約束
再加上自動增長列(含義從1開始增長增長量是1)password
varchar(10)
not
null
--注意建表最後一個欄位名時結尾不要加逗號否則會出錯)

G. sql資料庫的主鍵自動編號怎麼弄的啊

1.
首先刪除主鍵,
然後重新創建主鍵,
重新創建主鍵的時候,
需要說明本主鍵是使用
非聚集索引
primary
key
nonclustered
(
sno
)
2.
a:
pad_index
=
{
on
|
off
}
指定索引填充。默認值為
off。
on
fillfactor
指定的可用空間百分比應用於索引的中間級頁。
off
或不指定
fillfactor
考慮到中間級頁上的鍵集,將中間級頁填充到接近其容量的程度,以留出足夠的空間,使之至少能夠容納索引的最大的一行。
b:
fillfactor
=fillfactor
指定一個百分比,指示在創建或重新生成索引期間,資料庫引擎對各索引頁的葉級填充的程度。fillfactor
必須為介於
1

100
之間的整數值。默認值為
0。如果
fillfactor

100

0,則資料庫引擎將創建完全填充葉級頁的索引。
c:
ignore_p_key
=
{
on
|
off
}
指定在插入操作嘗試向唯一索引插入重復鍵值時的錯誤響應。ignore_p_key
選項僅適用於創建或重新生成索引後發生的插入操作。當執行
create
index、alter
index

update
時,該選項無效。默認值為
off。
on
向唯一索引插入重復鍵值時將出現警告消息。只有違反唯一性約束的行才會失敗。
off
向唯一索引插入重復鍵值時將出現錯誤消息。整個
insert
操作將被回滾。
d:
statistics_norecompute
=
{
on
|
off}
指定是否重新計算分發統計信息。默認值為
off。
on
不會自動重新計算過時的統計信息。
off
啟用統計信息自動更新功能。
若要恢復統計信息自動更新,請將
statistics_norecompute
設置為
off,或執行
update
statistics
但不包含
norecompute
子句。
e:
on
[primary]
是指
索引創建在
primary
這個文件組上。
3、
以全國的身份證為例子:
對於
身份證號碼,
有個
「唯一」
的索引
而對於
姓名,
有個
「不唯一」
的索引。
「不唯一」
的索引

雖然不能定位到唯一的某一行,
但是可以縮小范圍。定位到某些行。
4.
聚集索引
clustered
創建索引時,鍵值的邏輯順序決定表中對應行的物理順序。聚集索引的底層(或稱葉級別)包含該表的實際數據行。一個表或視圖只允許同時有一個聚集索引。

H. 如何用SQL自動生成序號和分序號

需要用row_number來給分組添加序號。

1、創建測試表,插入數據:

createtabletest(sidint,snamevarchar(20),sclassvarchar(20),scoreint);insertintotestvalues(1,'張三','一年一班',100)insertintotestvalues(2,'李四','一年一班',78)insertintotestvalues(3,'王五','一年一班',67)insertintotestvalues(4,'趙六','一年一班',87)insertintotestvalues(5,'badkano','一年二班',98)insertintotestvalues(6,'網路知道團長','一年二班',99)insertintotestvalues(7,'小小動','一年二班',99)insertintotestvalues(8,'劉備','一年三班',56)insertintotestvalues(9,'張飛','一年三班',67)insertintotestvalues(10,'關羽','一年三班',76)

2、要求按照班級總分給出班級排名(即序號),執行語句:

selectrow_number()over(orderbyscoredesc)排名,sclass班級,score總分from(selectsclass,SUM(score)scorefromtestgroupbysclass)t

3、查詢結果:

I. SQL 自定義的自動編號求助

查詢時加序號
a:沒有主鍵的情形:

Select identity(int,1,1) as iid,* into #tmp from TableName
Select * from #tmp
Drop table #tmp

b:有主鍵的情形:

Select (Select sum(1) from TableName where KeyField <= a.KeyField) as iid,* from TableName a

eg:
select (select sum(1) from user_Admin where id<=a.id) as ID,id,displayName from user_Admin a order by a.ID asc

結果:

------------------------------------------------------------

USE 北風貿易;
GO

/* 方法一*/

SELECT 序號= (SELECT COUNT(客戶編號) FROM 客戶 AS LiMing
WHERE LiMing.客戶編號<= Chang.客戶編號),
客戶編號, 公司名稱
FROM 客戶 AS Chang ORDER BY 1;
GO

/* 方法二: 使用SQL Server 2005 獨有的RANK() OVER () 語法*/
SELECT RANK() OVER (ORDER BY 客戶編號 DESC) AS 序號,
客戶編號, 公司名稱
FROM 客戶;
GO

/* 方法三*/
SELECT 序號= COUNT(*), LiMing.客戶編號, LiMing.公司名稱
FROM 客戶 AS LiMing, 客戶AS Chang
WHERE LiMing.客戶編號>= Chang.客戶編號
GROUP BY LiMing.客戶編號, LiMing.公司名稱
ORDER BY 序號;
GO

/* 方法四
建立一個「自動編號」的欄位,然後將數據新增至一個區域性暫存數據表,
然後由該區域性暫存數據表中,將數據選取出來,最後刪除該區域性暫存數據表
*/
SELECT 序號= IDENTITY(INT,1,1), 管道, 程序語言, 講師, 資歷
INTO #LiMing
FROM 問券調查一;
GO
SELECT * FROM #LiMing;
GO
DROP TABLE #LiMing;
GO

/*
方法五
使用 SQL Server 2005 獨有的ROW_NUMBER() OVER () 語法
搭配 CTE (一般數據表表達式,就是 WITH 那段語法)選取序號2 ~ 4 的數據
*/
WITH 排序後的圖書 AS
(SELECT ROW_NUMBER() OVER (ORDER BY 客戶編號 DESC) AS 序號,
客戶編號, 公司名稱
FROM 客戶)
SELECT * FROM 排序後的圖書
WHERE 序號 BETWEEN 2 AND 4;
GO

------------分頁使用---------------------------
SELECT RANK() OVER (ORDER BY id asc) AS no,* into #temp
FROM Bbs_reply select * from #temp where no between 1 and 100 drop table #temp

J. sql 怎麼設置自動編號列

insert into tb
select right('000000'+cast((count(*)+1) as varchar),7),**,**,…… from tb
或者
create table tb(id varchar(10),col varchar(10))
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb
insert into tb select right('000000'+cast((count(*)+1) as varchar),7),'a' from tb

select * from tb
drop table tb

/*
id col
0000001 a
0000002 a
0000003 a
0000004 a
0000005 a
0000006 a
0000007 a
*/