1. 程式人生 > >SQL SERVER裡@@identity 的用法

SQL SERVER裡@@identity 的用法

@@identity的作用是返回最後插入的標識值,所以有很多朋友使用它來獲取插入資料後的識別符號。
但有一點是需要注意的,@@identity返回的是最後的識別符號,所以,要想正確的返回插入後的識別符號,那麼就必須保證,你想要的結果是最後的識別符號,否則就會隱藏bug。

仔細閱讀@@identity的註釋:

註釋

在一條 INSERT、SELECT INTO 或大容量複製語句完成後,@@IDENTITY 中包含此語句產生的最後的標識值。若此語句沒有影響任何有標識列的表,則 @@IDENTITY 返回 NULL。若插入了多個行,則會產生多個標識值,@@IDENTITY 返回最後產生的標識值。如果此語句激發一個或多個執行產生標識值的插入操作的觸發器,則語句執行後立即呼叫 @@IDENTITY 將返回由觸發器產生的最後的標識值。若 INSERT 或 SELECT INTO 語句失敗或大容量複製失敗,或事務被回滾,則 @@IDENTITY值不會還原為以前的設定。

在返回插入到表的 @@IDENTITY 列的最後一個值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函式類似。

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

相關推薦

SQL SERVER@@identity用法

@@identity的作用是返回最後插入的標識值,所以有很多朋友使用它來獲取插入資料後的識別符號。但有一點是需要注意的,@@identity返回的是最後的識別符號,所以,要想正確的返回插入後的識別符號,那麼就必須保證,你想要的結果是最後的識別符號,否則就會隱藏bug。仔細閱讀

sql server之exists用法

nbsp http ima 技術分享 mage .com .cn img bsp sql server之exists用法

SQL SERVER的鎖機制

表鎖 1:TABLOCK(表鎖) 保證其他程序只能讀取而不能修改資料。 select * from t_country  with (TABLOCK) 2:TABLOCKX(排它表鎖) 防止其他程序讀取或修改表中的資料。 select * from t_coun

SQL Server 的資料行結構

感覺關於資料庫的 資料行結構 (data row/record structure) 這方面的內容國內的資料特別少,老師上課講到後,怎麼搜也搜不到,最後還是爬梯|=|子才搜到一些的,這裡對老師上課講的和網上看的做一個小總結。 文章目錄資料行結構行結構總覽行結構補

SQL Server查詢表結構命令

                環境:SQL Server 2008 R2問題:查詢表結構命令       對MySQL和Oracle資料庫熟悉的朋友知道用desc就可以查詢一張表的結構,但是在SQL Server裡執行desc命令會報錯。 desc Student; --關鍵字 'desc' 附近有語法錯誤

解決SQL Serversp_helptext輸出格式錯行問題

use Master go if object_id('SP_SQL') is not null drop proc SP_SQL go /*******************************************************************

SQL Server的閂鎖介紹

在今天的文章裡我想談下SQL Server使用的更高階的,輕量級的同步物件:閂鎖(Latch)。閂鎖是SQL Server儲存引擎使用輕量級同步物件,用來保護多執行緒訪問記憶體內結構。文章的第1部分我會介紹SQL Server裡為什麼需要閂鎖,在第2部分我會給你介紹各個閂鎖型別,還有你如何能對它們進行故障排除

Sql Server 的向上取整、向下取整、四捨五入取整的例項!

==================================================== 【四捨五入取整擷取】 select round(54.56,0) ===================================================

SQL SERVER case的用法及例項

1.  官方釋義 計算條件表示式,並返回多個可能的結果表示式之一。    CASE 簡單表示式,它通過將表示式與一組簡單的表示式進行比較來確定結果。    CASE 搜尋表示式,它通過計算一組布林表示式來確定結果。 這兩種格式都支援可選的 ELSE 引數。 CASE

臨時表和表變數區別,SQL Server的檢視和臨時表在哪裡?

臨時表與永久表相似,但臨時表儲存在 tempdb 中,當不再使用時會自動刪除。 臨時表有兩種型別:本地和全域性。它們在名稱、可見性以及可用性上有區別。本地臨時表的名稱以單個數字元號 (#) 打頭;它們僅對當前的使用者連線是可見的;當用戶從 SQL Server 例項斷開連

行轉列:SQL SERVER PIVOT與用法解釋

在資料庫操作中,有些時候我們遇到需要實現“行轉列”的需求,例如一下的表為某店鋪的一週收入情況表: WEEK_INCOME(WEEK VARCHAR(10),INCOME DECIMAL) 我們先插入一些模擬資料: INSERT INTO WEEK_INCOME

sql server怎麼用二進位制存圖片?包括office檔案等等

我建了一個表,怎麼把圖片存進去呀? 都說用二進位制存,怎麼存呀? 用byte[]型別存 FileStream fs;fs = File.OpenRead("c:/1.ico");byte[] temp = new byte[fs.Length];int count = (in

SQL SERVER給表,欄位添加註釋

-- 表加註釋 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'註釋內容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N

sql server 如何取得伺服器的日期和時間,並以自定義的格式插入資料庫?

使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 引數expression 是任何有效的 Microsoft® SQL Server™ 表示式。有關更多資訊,請參

sql server 系統函式用法例項

系統函式1.case when ... then ..else ..end(用於對條件進行測試) e.Select id,case when name='deepwishly' then '老大' el

SQL Server檢視當前連線的線上使用者數

use master select loginame,count(0) from sysprocesses group by loginame order by count(0) desc select nt_username,count(0) from sysproce

Sql Server巧用Case將多行顯示的資料合併為一行顯示

轉載地址:http://www.cnblogs.com/kingthy/archive/2008/04/29/1175697.html 昨晚在CSDN論壇上看到有某個人問了類似這樣的一個問題,現有三個資料表,分別是學生表,課程表,成績表。它們的結構與樣例資料如下:學生表

SQL Server Check 約束用法詳解

一、定義:        CHECK 約束用於限制列中的值的範圍。        如果對單個列定義 CHECK 約束,那麼該列只允許特定的值。        如果對一個表定義 CHECK 約束,那麼此約束會在特定的列中對值進行限制。 做資料庫,就必須要會寫約束。 運算

SQL Server的Split函式

ALTERFUNCTION dbo.f_splitSTR(     @svarchar(8000),       --要分拆的字串   @splitvarchar(10),     --資料分隔符   @posint--取第幾個     )RETURNSvarchar(100)     AS     BEG

[SQL Server]TOP的用法

TOP 關鍵詞主要是規定返回資料的記錄條數,下面介紹幾種常用的使用方法: ①返回查出資料的前n條資料 SELECT TOP NUMBER COLUMN1,COLUMN2,COLUMN3 FROM TABLENAME SELECT TOP NUMBER * FROM TA