在SQL Server數據庫中為標識(IDENTITY)列插入顯式值
更新時間:2007年02月07日 00:00:00 作者:
SQL Server中的標識列和ACCESS中的“自動編號”相似,都是插入記錄的時候自動生成,一般不允許也不需要我們去手動修改它
如果我們在標識列中插入值,例如:
insert member(id,username) values(10,'admin')
則在查詢分析器里面會返回錯誤信息:
引用內容
服務器: 消息 544,級別 16,狀態(tài) 1,行 1
當 IDENTITY_Insert 設置為 OFF 時,不能向表 'member' 中的標識列插入顯式值。
而在ASP程序中會返回錯誤信息:
引用內容
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14'
當 IDENTITY_Insert 設置為 OFF 時,不能向表 'member' 中的標識列插入顯式值。
test.asp,行 13
但有的情況我們需要手動插入標識列的值,例如刪除了一些記錄后,標識列并不連續(xù),而我們又想把它補齊。我們利用一個開關可以讓愿望變成現(xiàn)實:
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 其實可以省略,因為會話完畢后,這個開關就自動關上了。
insert member(id,username) values(10,'admin')
則在查詢分析器里面會返回錯誤信息:
引用內容
服務器: 消息 544,級別 16,狀態(tài) 1,行 1
當 IDENTITY_Insert 設置為 OFF 時,不能向表 'member' 中的標識列插入顯式值。
而在ASP程序中會返回錯誤信息:
引用內容
Microsoft OLE DB Provider for SQL Server 錯誤 '80040e14'
當 IDENTITY_Insert 設置為 OFF 時,不能向表 'member' 中的標識列插入顯式值。
test.asp,行 13
但有的情況我們需要手動插入標識列的值,例如刪除了一些記錄后,標識列并不連續(xù),而我們又想把它補齊。我們利用一個開關可以讓愿望變成現(xiàn)實:
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 其實可以省略,因為會話完畢后,這個開關就自動關上了。
相關文章
t-sql清空表數據的兩種方式示例(truncate and delete)
這篇文章主要介紹了t-sql使用truncate and delete清空表數據的兩種方法,大家參考使用2013-11-11sql server 2012 數據庫所有表里查找某字符串的方法
此TSQL語句是針對SQL Server 2012編寫。如果使用之前版本,需要對部分語句進行重寫。2013-03-03SQL Server 樹形表非循環(huán)遞歸查詢的實例詳解
這篇文章主要介紹了SQL Server 樹形表非循環(huán)遞歸查詢的實例詳解的相關資料,本文介紹的非常詳細具有參考借鑒價值,需要的朋友可以參考下2016-10-10