返回自动生成的列值

时间:2013-02-04 02:44:03

标签: sql sql-server-2008

我需要在数据库中创建一个新员工,并且需要使用自动生成的EmployeeID。

无法找到需要编写过程的方法,并在我的c#代码中使用自动生成的值。

请帮帮我 感谢

2 个答案:

答案 0 :(得分:2)

SCOPE_IDENTITY()函数返回当前SQL执行范围中最近创建的Identity值,并且是在刚刚执行INSERT的存储过程中查找ID的推荐方法。

INSERT INTO YourTable(col1, col2) VALUES "abc", "xyz";

SELECT SCOPE_IDENTITY();

您可以将存储过程中的值返回给C#client 1)作为数据集使用SELECT(如上所述),或者2)作为存储过程的RETURN值,或者3)将其传回通过在您的存储过程中声明的OUTPUT参数。

答案 1 :(得分:1)

喜欢这个:

using (var connection = new SqlCeConnection(Settings.Default.Database1ConnectionString))
    using (var command = connection.CreateCommand())
    {
        connection.Open();

        command.CommandText = @"
            INSERT Test (Name)
            VALUES (@TestName)
            ";
        command.Parameters.AddWithValue("TestName", "SomeName");
        command.ExecuteNonQuery();

        command.CommandText = "SELECT SCOPE_IDENTITY()";
        int id = command.ExecuteScalar();
    }