繁体   English   中英

选择Cast(Scope_identity)并执行标量

[英]Select Cast (Scope_identity) and executescalar

为什么不起作用? 我收到一个错误消息,说数字不能为无穷大。 但是,我不得不从insert语句中删除此语句,以便它不会两次发布条目。 我必须在哪里合并这部分代码以使我的代码作为新的ID循环?

            cmd = new SqlCommand(@"SELECT CAST(scope_identity() as int)", con);

            int aID = Convert.ToInt32(cmd.ExecuteScalar());

通常,您可以有一个存储过程来执行INSERT并返回带有out参数的最后插入的标识,如此处示例所示: http : //www.objectreference.net/post/SCOPE_IDENTITY()-return-插入数据库中的ID.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM