SqlServer中的自增的ID的最後的值:
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內的最後一個 IDENTITY 值。
SELECT @@IDENTITY --返回插入到當前會話中任何作用域內的最後一個 IDENTITY 列值
SELECT IDENT_CURRENT("TbName")--不受作用域和會話的限制,而受限於指定的表。
IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。
一個作用域就是一個模組——儲存過程、觸發器、函式或批處理。因此,如果兩個語句處於同一個儲存過程、函式或批處理中,則它們位於相同的作用域中。
對於馬上使用的剛才插入的新記錄ID用SCOPE_IDENTITY()是最合適的;
對於想要得到一系列的操作中最後得到的那個自增的ID最好用@@IDENTITY;
對於想要得到一個表中的最後一個插入操作所產生的ID的最好用IDENT_CURRENT("TBName")
DECLARE @TMP_ID INT
SET @TMP_ID = IDENT_CURRENT("BID_EvaluateItem")
IF ((@TMP_ID IS NOT NULL) AND (@TMP_ID >0))
BEGIN
--其它的操作
END
SqlServer中的自增的ID的最後的值:
SELECT SCOPE_IDENTITY() --返回插入到同一作用域中的 IDENTITY 列內的最後一個 IDENTITY 值。
SELECT @@IDENTITY --返回插入到當前會話中任何作用域內的最後一個 IDENTITY 列值
SELECT IDENT_CURRENT("TbName")--不受作用域和會話的限制,而受限於指定的表。
IDENT_CURRENT 返回為任何會話和作用域中的特定表所生成的值。
一個作用域就是一個模組——儲存過程、觸發器、函式或批處理。因此,如果兩個語句處於同一個儲存過程、函式或批處理中,則它們位於相同的作用域中。
對於馬上使用的剛才插入的新記錄ID用SCOPE_IDENTITY()是最合適的;
對於想要得到一系列的操作中最後得到的那個自增的ID最好用@@IDENTITY;
對於想要得到一個表中的最後一個插入操作所產生的ID的最好用IDENT_CURRENT("TBName")
DECLARE @TMP_ID INT
SET @TMP_ID = IDENT_CURRENT("BID_EvaluateItem")
IF ((@TMP_ID IS NOT NULL) AND (@TMP_ID >0))
BEGIN
--其它的操作
END