在SQL Server數(shù)據(jù)庫(kù)中為標(biāo)識(shí)(IDENTITY)列插入顯式值
更新時(shí)間:2007年02月07日 00:00:00 作者:
SQL Server中的標(biāo)識(shí)列和ACCESS中的“自動(dòng)編號(hào)”相似,都是插入記錄的時(shí)候自動(dòng)生成,一般不允許也不需要我們?nèi)ナ謩?dòng)修改它
如果我們?cè)跇?biāo)識(shí)列中插入值,例如:
insert member(id,username) values(10,'admin')
則在查詢分析器里面會(huì)返回錯(cuò)誤信息:
引用內(nèi)容
服務(wù)器: 消息 544,級(jí)別 16,狀態(tài) 1,行 1
當(dāng) IDENTITY_Insert 設(shè)置為 OFF 時(shí),不能向表 'member' 中的標(biāo)識(shí)列插入顯式值。
而在ASP程序中會(huì)返回錯(cuò)誤信息:
引用內(nèi)容
Microsoft OLE DB Provider for SQL Server 錯(cuò)誤 '80040e14'
當(dāng) IDENTITY_Insert 設(shè)置為 OFF 時(shí),不能向表 'member' 中的標(biāo)識(shí)列插入顯式值。
test.asp,行 13
但有的情況我們需要手動(dòng)插入標(biāo)識(shí)列的值,例如刪除了一些記錄后,標(biāo)識(shí)列并不連續(xù),而我們又想把它補(bǔ)齊。我們利用一個(gè)開(kāi)關(guān)可以讓愿望變成現(xiàn)實(shí):
SET IDENTITY_Insert [TableName] ON
在查詢分析器里面這樣寫(xiě):
SET IDENTITY_Insert member ON
insert member(id,username) values(1,'admin')
SET IDENTITY_Insert member OFF
在ASP頁(yè)面可以這樣寫(xiě):
con.execute("SET IDENTITY_Insert member ON" & vbcrlf & "insert member(id,username) values(2,'abcde')" & vbcrlf & "SET IDENTITY_Insert member OFF")
使用該方法應(yīng)該保證標(biāo)識(shí)列沒(méi)有插入重復(fù)數(shù)據(jù),要不然會(huì)返回錯(cuò)誤,插入操作不會(huì)進(jìn)行。SET IDENTITY_Insert [TableName] OFF 其實(shí)可以省略,因?yàn)闀?huì)話完畢后,這個(gè)開(kāi)關(guān)就自動(dòng)關(guān)上了。
insert member(id,username) values(10,'admin')
則在查詢分析器里面會(huì)返回錯(cuò)誤信息:
引用內(nèi)容
服務(wù)器: 消息 544,級(jí)別 16,狀態(tài) 1,行 1
當(dāng) IDENTITY_Insert 設(shè)置為 OFF 時(shí),不能向表 'member' 中的標(biāo)識(shí)列插入顯式值。
而在ASP程序中會(huì)返回錯(cuò)誤信息:
引用內(nèi)容
Microsoft OLE DB Provider for SQL Server 錯(cuò)誤 '80040e14'
當(dāng) IDENTITY_Insert 設(shè)置為 OFF 時(shí),不能向表 'member' 中的標(biāo)識(shí)列插入顯式值。
test.asp,行 13
但有的情況我們需要手動(dòng)插入標(biāo)識(shí)列的值,例如刪除了一些記錄后,標(biāo)識(shí)列并不連續(xù),而我們又想把它補(bǔ)齊。我們利用一個(gè)開(kāi)關(guān)可以讓愿望變成現(xiàn)實(shí):
SET IDENTITY_Insert [TableName] ON
在查詢分析器里面這樣寫(xiě):
SET IDENTITY_Insert member ON
insert member(id,username) values(1,'admin')
SET IDENTITY_Insert member OFF
在ASP頁(yè)面可以這樣寫(xiě):
con.execute("SET IDENTITY_Insert member ON" & vbcrlf & "insert member(id,username) values(2,'abcde')" & vbcrlf & "SET IDENTITY_Insert member OFF")
使用該方法應(yīng)該保證標(biāo)識(shí)列沒(méi)有插入重復(fù)數(shù)據(jù),要不然會(huì)返回錯(cuò)誤,插入操作不會(huì)進(jìn)行。SET IDENTITY_Insert [TableName] OFF 其實(shí)可以省略,因?yàn)闀?huì)話完畢后,這個(gè)開(kāi)關(guān)就自動(dòng)關(guān)上了。
您可能感興趣的文章:
- SQL Server數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)
- sqlserver數(shù)據(jù)庫(kù)導(dǎo)入數(shù)據(jù)操作詳解(圖)
- SQL Server數(shù)據(jù)庫(kù)中批量導(dǎo)入數(shù)據(jù)的四種方法總結(jié)
- c#連接sqlserver數(shù)據(jù)庫(kù)、插入數(shù)據(jù)、從數(shù)據(jù)庫(kù)獲取時(shí)間示例
- 用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫(kù)范例語(yǔ)句
- 將ACCESS數(shù)據(jù)庫(kù)遷移到SQLSERVER數(shù)據(jù)庫(kù)兩種方法(圖文詳解)
- 如何遠(yuǎn)程連接SQL Server數(shù)據(jù)庫(kù)圖文教程
- VB語(yǔ)言使用ADO連接、操作SQLServer數(shù)據(jù)庫(kù)教程
- ASP.NET2.0 SQL Server數(shù)據(jù)庫(kù)連接詳解
- Activiti-Explorer使用sql server數(shù)據(jù)庫(kù)實(shí)現(xiàn)方法
相關(guān)文章
SQL Server存儲(chǔ)過(guò)程中使用表值作為輸入?yún)?shù)示例
這篇文章主要介紹了SQL Server存儲(chǔ)過(guò)程中使用表值作為輸入?yún)?shù)示例,使用表值參數(shù),可以不必創(chuàng)建臨時(shí)表或許多參數(shù),即可向 Transact-SQL 語(yǔ)句或例程(如存儲(chǔ)過(guò)程或函數(shù))發(fā)送多行數(shù)據(jù),這樣可以省去很多自定義的代碼,需要的朋友可以參考下2015-07-07
SQL Server 不刪除信息重新恢復(fù)自動(dòng)編號(hào)列的序號(hào)的方法
SQL Server 不刪除信息重新恢復(fù)自動(dòng)編號(hào)列的序號(hào)的方法...2007-11-11
SQL?Server實(shí)現(xiàn)group_concat功能的詳細(xì)實(shí)例
group_concat函數(shù)能將相同的行組合起來(lái),下面這篇文章主要給大家介紹了關(guān)于SQL?Server實(shí)現(xiàn)group_concat功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
設(shè)置SQLServer數(shù)據(jù)庫(kù)中某些表為只讀的多種方法分享
在某些情況下需要把SQLServer的表設(shè)為只讀,下面舉出幾種方法,需要的朋友可以參考下2012-06-06
sql 查詢記錄數(shù)結(jié)果集某個(gè)區(qū)間內(nèi)記錄
sqlserver如何實(shí)現(xiàn)查詢記錄數(shù)某個(gè)區(qū)間內(nèi)記錄,本文將提供多種解決方法,需要了解的朋友可以參考下2012-11-11

