上面三種用法也不太一樣
我在寫stored procedure的時候
若需要寫入的資料是master-detail的話
比較常用的是@@IDENTITY
在寫入master之後
可用下面語法來取得寫入master Table的IDENTITY後,再寫入Detail Table
DECLARE @TableIdentity BIGINT
SET @TableIdentity = @@IDENTITY
若是除了寫入master-detail的table之外
還需要寫入log檔的table
那麼我會用下面語法來取得該Table最後的一筆IDENTITY
再將這個IDENTITY寫入到log檔
SET @TableIdentity = IDENT_CURRENT('TableName')
因為master-detail有可能會寫入失敗
若使用@@IDENTITY,則會取到null值
而使用IDENT_CURRENT(),會取得原本應該產生的IDENTITY
沒有留言:
張貼留言