在c#代码中设置标识规范

时间:2016-07-12 15:10:54

标签: c# identity

我正在尝试编写一个c#方法来设置身份规范。但它没有用。这是我的代码:

        string sql = "SET IDENTITY_INSERT " + table + " ON";
        string sql2 = "SET IDENTITY_INSERT " + table + " OFF";

        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlCommand cmd2 = new SqlCommand(sql2, conn);

        conn.Open();

        if (identity == true)
        {
            cmd.ExecuteReader();
        }
        else
        {
            cmd2.ExecuteReader();
        }            

        conn.Close();
    }

条款"表"和#34;身份"是参数。

我做错了吗?你能帮帮我吗?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

问题不在于您的代码,而在于您的逻辑。设置IDENTITY_INSERT以及lots of other settings是基于每个会话完成的:

  

Transact-SQL编程语言提供了几个SET语句,更改当前会话处理特定信息。

(强调我的)

只要您的连接关闭,您的会话就会消失,因此设置也会消失。

您需要重构代码以包含IDENTITY_INSERT的设置,以便它与使用它的代码位于同一会话中。