最近寫了一堆stored proceudure
在SQL上遇到很多問題,覺得這個方法很實用
找了幾個地方後蒐集到幾個我有使用的方法,分享給大家
也避免我忘記有地方可以回來再看一次XD
如大標題,我用的是Go
看到文章的網址被吃了,現在找不到
總結就是要insert多筆資料要用for迴圈insert
MSSQL不支援
就是有一些table你有設identity ID
在insert後你要做別的操作又不想在select一次
或是拿到ID就可以解決掉一堆麻煩的語法
@@IDENTITY
第一種方法
Insert into YourTable(Name)
Values('john wick')
SELECT @@IDENTITY as ID
第二種方法
BEGIN TRAN
Insert into YourTable(Name)
Values('john wick')
Insert into SecondTable(ID)
Values(@@IDENTITY)
COMMIT TRAN
OUTPUT子句
Insert into YourTable(Name)
OUTPUT INSERTED.ID,INSERTED.Name
Values('john wick')
Go的部分
var ID,Name String
if err := db.QueryRow(`...`,params).Scan(&ID,&Name); err != nil {
...
}
有時候在頁面input需要做動態查詢
有的欄位會輸入值,有的又不需要
這時候利用IsNull超方便
就不需要when case...一大堆
DECLARE name varchar(20),
id int
SELECT * FROM YourTable
WHERE name = IsNull(@name,name)
AND id = IsNull(@id,id)