我创建一个存储过程创建一个新的客户,以便例如,存储过程 - 知道下一个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