我創建一個存儲過程創建一個新的客戶,以便例如,存儲過程 - 知道下一個ID
CREATE PROCEDURE Customer_Create
@customer_arg
@type_arg
AS
BEGIN
INSERT INTO Customer (Customer_id, Type_id)
VALUES (@Customer_arg,@type_arg)
End;
如果我有我的說法有好幾個外鍵,他們都ID的是有辦法對於我來說,當我運行執行語句時,自動取得下一個ID號碼,而不必知道它會在我的腦海中脫穎而出?我想剛剛已經拉它的事實,ID爲2,因爲之前的紀錄是1
EXECUTE Customer_Create 16,2
有什麼事情wnith output
?如果是這樣如何工作代碼明智
是否使用[ IDENTITY](http://msdn.microsoft.com/en-us/library/ms186775.aspx)在你的ID?如果不是,那就是你的問題。您應該允許數據庫生成新值。正如答案所解釋的那樣,'Scope_Identity()'可以在這種簡單情況下返回新分配的標識值,但oyu應該瞭解'OUTPUT'子句,因爲它更有用。值得注意的是,分配的值可能並不密集。例如,如果在事務處理期間插入幾行,並且事務被回滾,那麼id值將不會被重用。 – HABO 2013-04-22 00:37:59