SQL Server資料庫自增長識別欄位的更新修改操作方法

來源:互聯網
上載者:User

在日常的sql server開發中,經常會用到Identity類型的識別欄位作為一個表結構的自增長編號。比如文章編號、記錄序號等等。自增長的識別欄位的引用很大程度上方便了資料庫程式的開發,但有時這個固執的欄位類型也會帶來一些麻煩。

一、修改識別欄位欄位值:

有時,為了實現某種功能,需要修改類型為Identity自增長類型的欄位的值,但由於識別欄位的類型所限,這種操作預設是不允許的。比如目前資料庫有5條正常添加的資料,此時刪除2條,那麼如果再添加資料時,自增長的識別欄位會自動賦值為6,可這時如果想在插入資料時給賦值3呢,預設是不允許的。如果您特別想改變這個欄位的值,完全由自己控制該識別欄位值的插入,方法還是有的,哈哈。

SET IDENTITY_INSERT /[TABLE/] [ON|OFF]
使用上述語句,可以方便的控制某個表的某個自增長識別欄位是否自動成長,也就是說是否允許你在insert一條記錄時手動指定識別欄位欄位的值。如果指定為on,則可以insert時指定識別欄位欄位的值,該值不自動成長賦值。當然,如果使用完畢,還需使用這個語句將開關關閉到預設狀態off,不然下次insert資料時該欄位還是不會自動成長賦值的,有始有終嘛。

二、重設識別欄位欄位值:

當資料記錄被刪除一部分後,後面再添加的新資料記錄,識別欄位數值會有很大的空閑間隔,看上去是不是很不爽呢。即使你刪除表中全部記錄,identity識別欄位的值還是會無休止的自動增加變大,而不是從頭開始增長。通過下面這條語句可以重設自增長欄位的種子值:

DBCC CHECKIDENT(TABLE, [RESEED|NORESEED], [1])
上述語句將把指定表的種子值強制重設為1。然而,如果你不想將種子重設為1,你可以用你想用的種子值替代第三個參數。如果你想知道當前的種子,而不是想重設識別值種子,這時你就要用NORESEED,而不用再去設定第三個參數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.