SQL server 2005中設(shè)置自動編號字段的方法
如果希望重新定義在表中添加新記錄時該列中自動生成并存儲于列中的序列號,則可以更改該列的標(biāo)識屬性。在每個表中只能設(shè)置一個列的標(biāo)識屬性。
具有標(biāo)識屬性的列包含系統(tǒng)生成的連續(xù)值,該值唯一地標(biāo)識表中的每一行(例如,雇員標(biāo)識號)。在包含標(biāo)識列的表中插入值時,Microsoft SQL Server 將基于上一次使用的標(biāo)識值(標(biāo)識種子屬性)和在創(chuàng)建列時指定的增量值(標(biāo)識增量屬性)自動生成下一個標(biāo)識符。
注意:
只能為不允許空值且數(shù)據(jù)類型為 decimal、int、numeric、smallint、bigint 或 tinyint 的列設(shè)置標(biāo)識屬性。此外,不能為主鍵列設(shè)置標(biāo)識屬性。
修改列的標(biāo)識屬性
1.在對象資源管理器中,右鍵單擊要更改其數(shù)據(jù)類型的列所在的表,再單擊“修改”。此時,將在表設(shè)計器中打開該表。
2.清除要更改的列的“允許空”復(fù)選框。
3.在“列屬性”選項卡中,展開“標(biāo)識規(guī)范”屬性。
4.單擊“是標(biāo)識”子屬性的網(wǎng)格單元格,然后從下拉列表中選擇“是”。
5.在“標(biāo)識種子”單元格中鍵入值。此值將賦給表中的第一行。默認(rèn)情況下將賦值 1。
6.在“標(biāo)識增量”單元格中鍵入值。此值是基于“標(biāo)識種子”依次為每個后續(xù)行增加的增量。默認(rèn)情況下將賦值 1。
例如,假設(shè)要為添加到 orders 表的每行自動生成 5 位 Order ID,從 10000 開始并且每次遞增 10。為此,應(yīng)在“標(biāo)識種子”中鍵入 10000,在“標(biāo)識增量”中鍵入 10。
如果更改表的任何標(biāo)識屬性,則將保留現(xiàn)有的標(biāo)識值。新的設(shè)置值僅應(yīng)用于添加到表中的新行。
注意:
如果頻繁執(zhí)行刪除操作的表中存在標(biāo)識列,則標(biāo)識值之間會出現(xiàn)不連貫的情況。若要避免出現(xiàn)這種不連貫的情況,請不要使用標(biāo)識屬性。
當(dāng)您在網(wǎng)格單元格外單擊或使用 Tab 鍵移動到其他網(wǎng)格單元格后,“標(biāo)識規(guī)范”屬性的新值將賦給表設(shè)計器中的列。當(dāng)您在表設(shè)計器中保存更改時,這些值將在數(shù)據(jù)庫中生效。
1. 創(chuàng)建表時指定自動編號的字段
CREATE TABLE [dbo].[UserInfor]( [UserID] [int] IDENTITY(100,2) NOT NULL, [UserName] [nchar](10) NOT NULL, )
說明:創(chuàng)建一個用戶信息表UserInfor,并指定UserID為自動編號字段。
其中:IDENTITY(100,2)表示字段的初始值為100,每次增量為2,如輸入數(shù)據(jù)后第一次為100,第二次為102。
2.獲取自動編號的字段值
這里可以使用@@IDENTITY取得自動增加字段主鍵的值
(3)重新設(shè)置自動編號字段種子的起始值
如果用戶將帶有自動增加字段的表內(nèi)容清空,由該字段的起始值將從原有的值開始增加,可以通過DBCC命令重新設(shè)置起始值。
DBCC CHECKIDENT (UserInfor,RESEED,0)
將UserInfor表的自動增加字段種子起始值設(shè)置為0,插入一條數(shù)據(jù)后自動字段的值為0+增量,如增量為1,則值為1
----------------------------------------------
右鍵你的表-->設(shè)計表-->找到你的id字段(類int型)-->標(biāo)識-->是-->標(biāo)識種子(初始值)-->標(biāo)識遞增量-->OK
---------------------------------
create table mytest ( id int primary key identity(1,1),--主鍵,自動+1 name varchar(20) unique not null,--不允許重復(fù),不允許為空 Age tinyint, notetime smalldatetime default getdate() ) insert into mytest values ('張三',20,getdate()) insert into mytest (name,age)values ('李四',20)
相關(guān)文章
SQL Server 2005 DTS導(dǎo)入平面數(shù)據(jù)出現(xiàn)錯誤解決方案
SQL Server 2005 DTS導(dǎo)入平面數(shù)據(jù)源時,總是被截斷,無法執(zhí)行的錯誤解決方案2012-11-11SQL Server中的XML數(shù)據(jù)進(jìn)行insert、update、delete
SQL Server 2005/2008增加了對XML數(shù)據(jù)的支持,同時也新增了幾種操作XML的方法,本文主要以SQL Server 2008為例介紹如何對XML數(shù)據(jù)進(jìn)行insert、update、delete。2009-07-07SQL SERVER 2005數(shù)據(jù)庫還原的方法
這篇文章主要介紹了SQL SERVER 2005數(shù)據(jù)庫還原的方法,有需要的朋友可以參考一下2013-11-11sql2005 附加數(shù)據(jù)庫出錯(錯誤號:5123)解決方法
無法為此請求檢索數(shù)據(jù)。(Microsoft.SqlServer.SmoEnum)其他信息執(zhí)行Transact-Sql語句或批處理時發(fā)生了異常,Microsoft.SqlServer.ConnectionInfo)嘗試打開或創(chuàng)建物理文件d:\Data\***.mdf時,Create file遇到操作系統(tǒng)錯誤5(拒絕訪問。2012-07-07Windows2003 SQL2005添加系統(tǒng)用戶修改系統(tǒng)登錄密碼
這篇文章主要介紹了Windows2003 SQL2005添加系統(tǒng)用戶修改系統(tǒng)登錄密碼的方法,大家如何忘記了系統(tǒng)的密碼可以試試這個方法2013-11-11SQLServer 查詢當(dāng)前服務(wù)器有多少連接請求的語句
有時DBA需要檢查當(dāng)前服務(wù)器有多少連接請求,以及連接請求的登錄名,客戶端版本,主機名,程序名等等之類的信息,我們就可以對服務(wù)器的連接狀況有所了解,防止不明用戶使用。2011-08-08SQLSERVER 2005中使用sql語句對xml文件和其數(shù)據(jù)的進(jìn)行操作(很全面)
由于數(shù)據(jù)庫對xml數(shù)據(jù)直接處理有很多優(yōu)勢,05也對這方面加強了功能。下面是一些實例代碼,大家可以參考下。2010-06-06SQLServer ntile獲取每組前10%的數(shù)據(jù)
sqlserver2005有關(guān)鍵字ntile(x)和over(partition by.. order by..)子句配合.2009-08-08