SQL自動編號

原文地址:http://blog.csdn.net/hfly2005/archive/2005/06/06/388809.aspx

我們都知道很多的數據庫軟件都爲表提供了自動編號的功能,這對於進行有些表的功能是十分有用 的,可以減少很多不必要工作,由於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語句來實現.

發佈了148 篇原創文章 · 獲贊 8 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章