1.CREATE TABLE 表名(
字段名 [int] IDENTITY (1, 1) NOT NULL , //--(seed = 1,increment = 1) 從1開始,每次遞增1
...
)
2.在SQL SERVER中,所有整數類型的列都可以定義成自增長列,叫作“標識”,
它通過設定“標識種子”和“標識遞增量”來實現功能。
列如:
列 類型 標識 標識種子 標識遞增量
---- ------- ---- ------- ----------
test tinyint √ 1 1
當你插入一行后,會從1開始自動的賦值。(1、2、3、4……255)
方法為:
1、選中表;
2、右擊鼠標,設計;
3、選中列(整數類型)
4、設定標識為“是“(默認為“否”)、標識種子和標識遞增量(一般為1)。
3.給定指定值自增
1).當數據庫表字段的列設置為自增列后,不能人為改變自增列的值
2).但有時候在導數據或公用配置過程中,有些基礎設置的值是不變的或者是固定,這樣在新起項目或導數據時會出現問題。
怎么才能修改自增列的值,讓導入的數據按我們指定的值存放呢,
3).下面介紹一種簡單的數據設置方法:
IDENTITY_INSERT
參數:ON(開始) OFF(結束)
注:此方法只可插入新值,仍然不能修改原有Identity列的值
示例:
SET IDENTITY_Insert TestTABLE ON insert TestTABLE(IDENTITYID,Code,XX,XX) VALUES(43,'','xx','xx'); SET IDENTITY_INSERT TestTABLE OFF
說明:
TestTable:數據庫表名
IDENTITYID:自增列字段
這樣我們就可以輕松進行數據導入,或寫入指定值的數據了
4、取自增最新值
SELECT IDENT_CURRENT('tablename') + IDENT_INCR('tablename') as newid
IDENT_CURRENT( 'table_name' ) 返回為指定的表或視圖生成的最后一個標識值。所生成的最后一個標識值可以針對任何會話和任何作用域。
SCOPE_IDENTITY 返回插入到同一作用域中的標識列內的最后一個標識值。一個范圍是一個模塊:存儲過程、觸發器、函數或批處理。因此,如果兩個語句處於同一個存儲過程、函數或批處理中,則它們位於相同的作用域中。
IDENT_INCR ( 'table_or_view' ) 返回增量值(返回形式為 numeric (@@MAXPRECISION,0)),該值是在帶有標識列的表或視圖中創建標識列時指定的。