程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 在SQL Server數據庫中為標識(IDENTITY)列插入顯式值

在SQL Server數據庫中為標識(IDENTITY)列插入顯式值

編輯:更多數據庫知識

如果我們在標識列中插入值,例如:

insert member(id,username) values(10,'admin')

則在查詢分析器裡面會返回錯誤信息:
 引用內容
服務器: 消息 544,級別 16,狀態 1,行 1
當 IDENTITY_Insert 設置為 OFF 時,不能向表 'member' 中的標識列插入顯式值。

而在ASP程序中會返回錯誤信息:
 引用內容
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14' 

當 IDENTITY_Insert 設置為 OFF 時,不能向表 'member' 中的標識列插入顯式值。 

test.asp,行 13 


但有的情況我們需要手動插入標識列的值,例如刪除了一些記錄後,標識列並不連續,而我們又想把它補齊。我們利用一個開關可以讓願望變成現實:

SET IDENTITY_Insert [TableName] ON

在查詢分析器裡面這樣寫:

SET IDENTITY_Insert member ON
insert member(id,username) values(1,'admin')
SET IDENTITY_Insert member OFF

在ASP頁面可以這樣寫:

con.execute("SET IDENTITY_Insert member ON" & vbcrlf & "insert member(id,username) values(2,'abcde')" & vbcrlf & "SET IDENTITY_Insert member OFF")

使用該方法應該保證標識列沒有插入重復數據,要不然會返回錯誤,插入操作不會進行。SET IDENTITY_Insert [TableName] OFF 其實可以省略,因為會話完畢後,這個開關就自動關上了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved