为什么这不起作用?我得到一个错误,说这个数字不能无穷大。但是,我不得不从插入语句中删除它,以便它不会发布两次条目。 我必须在哪里加入这段代码才能让我的代码作为新ID循环?
cmd = new SqlCommand(@"SELECT CAST(scope_identity() as int)", con);
int aID = Convert.ToInt32(cmd.ExecuteScalar());
答案 0 :(得分:5)
通常,您可以使用存储过程来执行INSERT
并使用out参数返回最后插入的标识,如下面的示例所示:http://www.objectreference.net/post/SCOPE_IDENTITY()-return-the-id-from-the-database-on-insert.aspx
CREATE PROCEDURE [dbo].[Customer_Insert]
@Name VARCHAR(255),
@Email VARCHAR(255),
@Phone VARCHAR(255),
@CustomerID INT OUTPUT
AS
BEGIN
INSERT INTO dbo.Customer ([Name], Email, Phone)
VALUES (@Name,@Email,@Phone)
SET @CustomerID = CAST(SCOPE_IDENTITY() AS INT)
END