2019年6月1日 星期六

SQL Server Insert時如何取得識別值(id)

導言:
這問題困擾我很久,但因為沒有必要性所以沒有去研究。直到最近因為如果自製Primary key至少會需要16碼(yyyyMMssHHmmssff),而這不止醜還造成表單顯示太長一串。沒想到上網一查,居然早就有功能了,只是我一直沒研究。


Step 1:Sql Server提供的識別規格
這功能讓人愛不釋手,因為太放便了,但也是許多問題的來源。尤其是在複製資料時,一不小心個自動功能,會讓目標表的id跟原本的不一樣。但…實在太好用了。





Step2:最大問題新增時怎麼知道這識別值是多少呢?
正常 insert into 是有去無回的指令,除非錯誤,不然不會有回傳值。這不打緊因為寫程式習慣沒錯誤就是ok。但問題是我需要該識別值呀。查了網路文章,馬上有解。原來有這種語法!!

INSERT INTO Test ([name])
OUTPUT Inserted.id,Inserted.name
VALUES ('jack');

總結:
 好方便,也意識到我的技術已落後今日水準非常多了。 

參考:
SQL 下完 Insert Into 之後,取得剛剛 Insert 的欄位值 (指定返回欄位)

沒有留言:

張貼留言