嵌入式SQL函數是否有可能創建一個函數/過程,它可以在一個SQL語句中使用這樣的:有時必須更新數據庫
INSERT INTO Journal(ProductID,Quantity) VALUES(LookupOrCreateProduct('12345678'),5)
LookupOrCreateProduct
應該尋找一個產品表通過串(條形碼)和:
*如果條形碼被發現 - 收益產品ID
*如果找不到條形碼 - 創建Products表與新的條形碼的新紀錄,並返回其ID
我探索的SQL Server函數,但它們不允許INSERT
或函數體內的任何其他數據庫修改。存儲過程可以返回值,但它們只能是int
類型。我的ID欄是bigint
。另一個選擇是使用輸出參數,但是我不清楚,我怎樣才能將它內聯到SQL語句中。謝謝。
設置輸出參數,並從存儲過程返回,並將其保存到變量,然後用它爲您的插入查詢... – 2014-09-03 15:49:28
你不能這樣做的功能。 [你應該使用OUTPUT參數,而不是RETURN值](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-using-select-or-return -instead-的-output.aspx)。返回值用於錯誤/狀態代碼,不適用於數據;其中一個主要原因正是你發現的:它們只對整數有用。 – 2014-09-03 16:25:08