[SQL ] SQL SERVER 欄位識別的問題
資料庫名稱:SQL SERVER
資料庫版本:2016
內容/問題描述:
各位好
TableA 的 SN 是主鍵 我把它設為識別 且 識別值增量設為1 如下
https://i.imgur.com/rufcKiP.png
TableB 也有SN 參考TableA 的 SN
我的需求是 在TableA新增1筆資料後 馬上在TableB也新增1筆資料
我的作法是在TableA新增1筆資料後 去找出TableA中最大的SN 再用此SN去TableB新增1筆資料
但這樣做可能有問題
譬如我在TableA新增1筆資料後 在還沒來得及去找出TableA最大的SN之前 又有人在TableA新增1筆資料
此時我找到的SN 就不是預期的SN 值會比預期的SN還大1
因為SN被設為識別 所以 我也無法在TableA新增1筆資料前 就知道此次新增SN的值會是多少
我是有想到用trigger 但試了一下 發現不符合需求
想請問 在.NET或SQL SERVER 這個問題有辦法解決嗎?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.182.4
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1506156615.A.9E4.html
推
09/24 19:57, , 1F
09/24 19:57, 1F
謝謝 我以為output只能用在 Store Procedure上 沒想到還有其他用法
底下是MSDN上的一句話 我覺得很貼切
「在INSERT或UPDATE 作業之後擷取識別或計算資料行值時,OUTPUT 子句可能很有用。」
https://docs.microsoft.com/zh-tw/sql/t-sql/queries/output-clause-transact-sql
底下是我找到的文章 我覺得很有助益 給有同樣問題的人參考
http://www.studyofnet.com/news/1049.html
※ 編輯: kisha024 (60.251.130.136), 10/10/2017 18:17:20
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章