我們都知道很多的資料庫軟體都為表提供了自動編號的功能,這對於進行有些表的功能是十分有用 的,可以減少很多不必要工作,由於SQL server是我最近才使用的所以,在這個過程中遇到了一些問題,但是經過尋找資料和摸索總算是解決了,所以現在將自己的心得寫下,希望當你遇到同樣問題 時,可以快速的解決.
在SQL server中要實現自動可以有兩種方式:
1.通過"企業管理器",以視窗形式建立,開啟的視窗,這裡我們以在test資料庫中建立test表的id為自動編號欄位為例:
首先:通過"資料庫"的快顯功能表"建立資料庫" 建立一個資料庫test;
然後:選擇建好的test資料庫,在視窗中選擇"表",單擊右鍵,在彈出的菜單選擇"建立表",則會進入資料表設計工具進行表的設計.是設定的效果.在設計完成後,單擊關閉按鈕進行儲存,並將其命名為"test"
2.通過"查詢分析器"以SQL方式建立,開啟查詢分析器,在查詢時段中輸入SQL語句
create database test --建立test資料庫
create table test (id int IDENTITY(1,1) not null,test text) --其中的IDENTITY(自動編號的初始舒值,自動編號的增量)即設定自動編號.
3 注意:
(1)一個表只能有一列定義為自動編號屬性,
(2)在SQL server中能夠進行自動編號的幾種資料類型為: decimal、int、numeric、smallint、bigint 或 tinyint。
(3)在建立了自動編號的表中用sql語句插入資料時,其insert中不要包括自動編號的列即如果要在上述test表中插入一行資料,其insert語 句就應為:insert into test (test) values ('this is a test table') 或 insert into test values('this is a test table'),而不能使用insert into test (id,test) values ('','this is a test table') 或者 insert into test values ('','this is a test table').否則就會出現"當 IDENTITY_INSERT 設定為 OFF 時,不能向表 'test' 中的識別欄位插入顯式值。"的錯誤提示.如果你一定要在自動編號列中插入特定的行如要執行insert into test values (1,'this is not a test table') ,可以通過首先運行 set IDENTITY_insert test(即表名) on語句來實現.