首页 > 解决方案 > 在没有输出变量的存储过程中使用 Select Scope_Identity()

问题描述

我正在尝试使用我无法更改的供应商存储过程。在 C# 中,我需要这个Scope_Identity值。如果可以的话,我会设置@ID为输出变量。在 SQL Developer 中运行该过程确实会返回正确的 ID。

CREATE PROCEDURE [dbo].[spTest]
    (@CountryName nvarchar(20))
AS
    DECLARE @ID int
    SET NOCOUNT OFF;

    INSERT INTO [dbo].[CountryImages]([CountryName] )
    VALUES (@CountryName );

    SELECT @ID = SCOPE_IDENTITY()

    IF @ID > 0 
    BEGIN 
        RETURN @ID
    END
GO

我已经尝试过了,但是返回了 null 。

C#

....  
cmd.Parameters.AddWithValue("@CountryName", "abc");                   
conn.Open();   

var ID = (int)cmd.ExecuteScalar();

谢谢

标签: c#sql-serverscope-identity

解决方案


推荐阅读