這問題困擾我很久,但因為沒有必要性所以沒有去研究。直到最近因為如果自製Primary key至少會需要16碼(yyyyMMssHHmmssff),而這不止醜還造成表單顯示太長一串。沒想到上網一查,居然早就有功能了,只是我一直沒研究。
Step 1:Sql Server提供的識別規格
這功能讓人愛不釋手,因為太放便了,但也是許多問題的來源。尤其是在複製資料時,一不小心個自動功能,會讓目標表的id跟原本的不一樣。但…實在太好用了。
正常 insert into 是有去無回的指令,除非錯誤,不然不會有回傳值。這不打緊因為寫程式習慣沒錯誤就是ok。但問題是我需要該識別值呀。查了網路文章,馬上有解。原來有這種語法!!
INSERT INTO Test ([name])
OUTPUT Inserted.id,Inserted.name
VALUES ('jack');
總結:
好方便,也意識到我的技術已落後今日水準非常多了。
參考:
《SQL 下完 Insert Into 之後,取得剛剛 Insert 的欄位值 (指定返回欄位)》
沒有留言:
張貼留言