在SQL Server 2005中,我在表中的"id"字段中将"Is Identity"属性设置为"Yes".因此,当在该表上执行Insert时,"id"将自动设置为下一个递增整数.执行Insert是否有一种简单的方法来获取"id"的设置,而不必在Insert之后立即执行Select语句?
重复:
获取插入行的标识的最佳方法?
Josh Hinman.. 32
至少在.Net中,您可以一次性向服务器发送多个查询.我在我的应用程序中这样做:
command.CommandText = "INSERT INTO [Employee] (Name) VALUES (@Name); SELECT SCOPE_IDENTITY()"; int id = (int)command.ExecuteScalar();
奇迹般有效.
至少在.Net中,您可以一次性向服务器发送多个查询.我在我的应用程序中这样做:
command.CommandText = "INSERT INTO [Employee] (Name) VALUES (@Name); SELECT SCOPE_IDENTITY()"; int id = (int)command.ExecuteScalar();
奇迹般有效.
如果要插入多行,则在语句中使用OUTPUT
和INSERTED.columnname
子句insert
是将所有id都放入临时表的简单方法.
DECLARE @MyTableVar table( ID int, Name varchar(50), ModifiedDate datetime); INSERT MyTable OUTPUT INSERTED.ID, INSERTED.Name, INSERTED.ModifiedDate INTO @MyTableVar SELECT someName, GetDate() from SomeTable