[SQL ] SQL SERVER 欄位識別的問題

看板Database作者 (4545454554)時間6年前 (2017/09/23 16:50), 6年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/3 (看更多)
資料庫名稱: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
查一下 output子句
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
文章代碼(AID): #1PnY17da (Database)
文章代碼(AID): #1PnY17da (Database)