欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
@@IDENTITY與SCOPE_IDENTITY()

      在一條 INSERT、SELECT INTO 或大容量復制語(yǔ)句完成后,@@IDENTITY 中包含語(yǔ)句生成的最后一個(gè)標識值。如果語(yǔ)句未影響任何包含標識列的表,則 @@IDENTITY 返回 NULL。如果插入了多個(gè)行,生成了多個(gè)標識值,則 @@IDENTITY 將返回最后生成的標識值。如果語(yǔ)句觸發(fā)了一個(gè)或多個(gè)觸發(fā)器,該觸發(fā)器又執行了生成標識值的插入操作,那么,在語(yǔ)句執行后立即調用 @@IDENTITY 將返回觸發(fā)器生成的最后一個(gè)標識值。如果對包含標識列的表執行插入操作后觸發(fā)了觸發(fā)器,并且觸發(fā)器對另一個(gè)沒(méi)有標識列的表執行了插入操作,則 @@IDENTITY 將返回第一次插入的標識值。出現 INSERT 或 SELECT INTO 語(yǔ)句失敗或大容量復制失敗,或者事務(wù)被回滾的情況時(shí),@@IDENTITY 值不會(huì )恢復為以前的設置。

      如果語(yǔ)句和事務(wù)失敗,它們會(huì )更改表的當前標識,從而使標識列中的值出現不連貫現象。即使未提交試圖向表中插入值的事務(wù),也永遠無(wú)法回滾標識值。例如,如果因 IGNORE_DUP_KEY 沖突而導致 INSERT 語(yǔ)句失敗,表的當前標識值仍然會(huì )增加。

     @@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 是相似的函數,因為他們都返回插入到表的 IDENTITY 列的最后一個(gè)值。

     @@IDENTITY 和 SCOPE_IDENTITY 可以返回當前會(huì )話(huà)中的所有表中生成的最后一個(gè)標識值。但是,SCOPE_IDENTITY 只在當前作用域內返回值,而 @@IDENTITY 不限于特定的作用域。

     IDENT_CURRENT 不受作用域和會(huì )話(huà)的限制,而受限于指定的表。IDENT_CURRENT 可以返回任何會(huì )話(huà)和任何作用域中為特定表生成的標識值。

     @@IDENTITY 函數的作用域是執行該函數的本地服務(wù)器上的當前會(huì )話(huà)。此函數不能應用于遠程或鏈接服務(wù)器。若要獲得其他服務(wù)器上的標識值,請在遠程服務(wù)器或鏈接服務(wù)器上執行存儲過(guò)程,并使(在遠程或鏈接服務(wù)器的環(huán)境中執行的)該存儲過(guò)程收集標識值,并將其返回本地服務(wù)器上的發(fā)出調用的連接。

     以下示例向包含標識列 (LocationID) 的表中插入一行,并使用 @@IDENTITY 顯示新行中使用的標識值:

USE AdventureWorks;
GO
--Display the value of LocationID in the last row in the table.
SELECT MAX(LocationID) FROM Production.Location;
GO
INSERT INTO Production.Location (Name, CostRate, Availability, ModifiedDate)
VALUES ('Damaged Goods'52.5GETDATE());
GO
SELECT @@IDENTITY AS 'Identity';
GO
--Display the value of LocationID of the newly inserted row.
SELECT MAX(LocationID) FROM Production.Location;
GO


補充:
  我們要慎用@@IDENTITY,原因是 @@IDENTITY 它總是獲取最后一條變更數據的自增字段的值,
 而忽略了進(jìn)行變更操作所在的范圍約束。比如,我有表 A 和表 B 兩個(gè)表,現在我在表 A 上定義了一個(gè)Insert觸發(fā)器,當在表 A 中插入一條數據時(shí),自動(dòng)在表 B 也插入一條數據。此時(shí),大家注意,有兩個(gè)原子操作:在A(yíng)中插入一條數據, 接著(zhù)在B中隨后插入一條數據。
 
   現在我們想下,假設上面表 A 和表 B 都有IDENTITY自增域,那么我們在表 A 插入一條數據后,使用了 SELECT @@IDENTITY 輸出時(shí),輸出的到底是 A 還是 B 的自增域的值呢?  答案很明顯,是誰(shuí)最后插入就輸出誰(shuí),那么就是 B 了。于是,我本意是想得到 A 的自增域值,結果得到了 B 的自增域值,一只 BUG 隨之誕生,搞不好還會(huì )影響到整個(gè)系統數據的混亂。
 
   因此,對于這種情況,建議大家慎用 @@IDENTITY,而盡量采用 SCOPE_IDENTITY() 函數替換之。SCOPE_IDENTITY() 也是得到最后一條自增域的值,但是它是僅限在一個(gè)操作范圍之內,而不@@IDENTITY 是取全局操作的最后一步操作所產(chǎn)生的自增域的值的。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
保存一個(gè)記錄到數據庫又馬上返回ID號
sql server獲取自增值的方法
如何在Sql Server中準確的獲得標識值 _ 編程_數據庫_C語(yǔ)言_電腦技術(shù)_程序設計...
SQL數據庫面試題
講解觸發(fā)器中的inserted表和deleted表
SQLServer數據庫自增長(cháng)標識列的更新修改操作
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久