關於SQL SERVER裡面獲取自增列的標識值的問題

  • 作者:由 匿名使用者 發表于 繪畫
  • 2021-10-01

有一張表,主鍵是自增列,往裡面插入一條資料之後,用select @@identity獲取到剛剛插入的標識的值 但問題是在我插入資料到我select @@identity之間如果我又插入了另一個表(也是子增列主鍵)的資料,我獲取出來的就不是我的之前的那個表的標識列的值了。請問這個是如何解決的?select @@identity根本就沒有指定任何表,以表示獲取的是哪一張表的標識列

關於SQL SERVER裡面獲取自增列的標識值的問題你真流Bi血了2013-12-22

用Select IDENT_CURRENT(TableName)

IDENT_CURRENT

返回為任何會話和任何作用域中的指定表最後生成的標識值。

語法

IDENT_CURRENT(‘table_name’)

引數

table_name

是將要返回其標識值的表的名稱。table_name 的資料型別為 varchar,沒有預設值。

返回型別

sql_variant

註釋

IDENT_CURRENT 類似於 Microsoft® SQL Server™ 2000 標識函式 SCOPE_IDENTITY 和 @@IDENTITY。這三個函式都返回最後生成的標識值。但是,它們在定義“最後”的作用域和會話上不同。

IDENT_CURRENT 返回為任何會話和任何作用域中的特定表最後生成的標識值。

@@IDENTITY 返回為當前會話的所有作用域中的任何表最後生成的標識值。

SCOPE_IDENTITY 返回為當前會話和當前作用域中的任何表最後生成的標識值。

Top