拉薩網賺_@@IDENTITY與SCOPE_IDENTITY()

 

在一條 INSERT、SELECT INTO 或大容量複製語句完成后,@@IDENTITY 中包羅語句天生的最後一個標識值

在一條 INSERT、SELECT INTO 或大容量複製語句完成后,@@IDENTITY 中包羅語句天生的最後一個標識值。若是語句未影響任何包羅標識列的表,則 @@IDENTITY 返回 NULL。若是插入了多個行,天生了多個標識值,則 @@IDENTITY 將返回最後天生的標識值。若是語句觸發了一個或多個觸發器,該觸發器又執行了天生標識值的插入操作,那麼,在語句執行后立刻挪用 @@IDENTITY 將返回觸發器天生的最後一個標識值。若是對包羅標識列的表執行插入操作后觸發了觸發器,而且觸發器對另一個沒有標識列的表執行了插入操作,則 @@IDENTITY 將返回第一次插入的標識值。泛起 INSERT 或 SELECT INTO 語句失敗或大容量複製失敗,或者事務被回滾的情形時,@@IDENTITY 值不會恢復為以前的設置。

若是語句和事務失敗,它們會更改表的當前標識,從而使標識列中的值泛起不連貫徵象。縱然未提交試圖向表中插入值的事務,也永遠無法回滾標識值。例如,若是因 IGNORE_DUP_KEY 衝突而導致 INSERT 語句失敗,表的當前標識值仍然會增添。

@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 是相似的函數,由於他們都返回插入到表的 IDENTITY 列的最後一個值。

@@IDENTITY 和 SCOPE_IDENTITY 可以返回當前會話中的所有表中天生的最後一個標識值。然則,SCOPE_IDENTITY 只在當前作用域內返回值,而 @@IDENTITY 不限於特定的作用域。

IDENT_CURRENT 不受作用域和會話的限制,而受限於指定的表。IDENT_CURRENT 可以返回任何會話和任何作用域中為特定表天生的標識值。

@@IDENTITY 函數的作用域是執行該函數的內陸服務器上的當前會話。此函數不能應用於遠程或鏈接服務器。若要獲得其他服務器上的標識值,請在遠程服務器或鏈接服務器上執行存儲歷程,並使(在遠程或鏈接服務器的環境中執行的)該存儲歷程網絡標識值,並將其返回內陸服務器上的發出挪用的毗鄰。

什麼是內部鏈接 內鏈的意義有哪些

內鏈的主要作用是引流及增加用戶粘性,而不是提升網站權重,這一點大家務必明白。理解了內鏈的作用,才能正確的做內鏈,從而發揮內鏈的作用。

个人所得税额度-GIF:见高不见远,刘殿座出击解围失误险酿大祸

华体网波经全面分析解盘足球篮球赛事,集全球各大联赛及杯赛最新数据于一身。同时提供全港报纸即日波经,苹果日报,成报分析,大公推介,名报波经,东方拆局,东方日报,太阳拆局,太阳报

以下示例向包羅標識列 (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’, 5, 2.5, GETDATE());
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 它總是獲取最後一條調換數據的自增字段的值,

而忽略了舉行調換操作所在的局限約束。好比,我有表 A 和表 B 兩個表,現在我在表 A 上界說了一個Insert觸發器,當在表 A 中插入一條數據時,自動在表 B 也插入一條數據。此時,人人注重,有兩個原子操作:在A中插入一條數據, 接着在B中隨後插入一條數據。

現在我們想下,假設上面表 A 和表 B 都有IDENTITY自增域,那麼我們在表 A 插入一條數據后,使用了 SELECT @@IDENTITY 輸出時,輸出的到底是 A 照樣 B 的自增域的值呢? 謎底很明顯,是誰最後插入就輸出誰,那麼就是 B 了。於是,我本意是想獲得 A 的自增域值,效果獲得了 B 的自增域值,一隻 BUG 隨之降生,搞不好還會影響到整個系統數據的雜亂。

因此,對於這種情形,建議人人慎用 @@IDENTITY,而只管接納 SCOPE_IDENTITY()函數替換之。SCOPE_IDENTITY() 也是獲得最後一條自增域的值,然則它是僅限在一個操作局限之內,而不@@IDENTITY 是取全局操作的最後一步操作所發生的自增域的值的。

本文來自劇本之家,原文鏈接:https://www.jb51.net/article/31770.htm

申請創業報道,分享創業好點子。,配合探討創業新機遇!

什麼是灰帽SEO 和白帽黑帽有何區別

簡單的說白帽SEO就是用正規的方法做SEO,黑帽SEO就是用不正規的方法做SEO,那麼、什麼是灰帽SEO呢,灰帽SEO是介於白帽SEO與黑帽SEO之間的一種優化方法,既包含了白帽SEO方法,又包含了黑帽SEO方法。

Author: 狗蛋
狗蛋的个人中心,这里没有什么。