C#中的SET IDENTITY_INSERT用法

时间:2016-06-17 09:55:05

标签: c# sql

在C#程序中,我需要将数据从我的数据库复制到第三方数据库。我正在生成客户编号并将其(包含其他数据)插入第三方数据库。

我是写这张桌子的唯一人。他们的数据库已经建成,他们无法/不会重建该表。因此,他们在桌面上设置了自动增量(qbCUST)。我需要绕过这个。

我找到了以下帖子How to put SET IDENTITY_INSERT dbo.myTable ON statement。我对用法有点不清楚。接受的anwser是这段代码:

using (var connection = new SqlConnection("Connection String here"))
{
    connection.Open();
    var query = "SET IDENTITY_INSERT dbo.MyTable ON; INSERT INTO dbo.MyTable (IdentityColumn) VALUES (@identityColumnValue); SET IDENTITY_INSERT dbo.MyTable OFF;";

    using (var command = new SqlCommand(query, connection)
    {
        command.Parameters.AddWithValue("@identityColumnValue", 3);
        command.ExecuteNonQuery();
    }
}

我是否应该首先将身份插入OFF?

1 个答案:

答案 0 :(得分:7)

没有; SET IDENTITY_INSERT ... ON表示正在控制IDENTITY;设置它OFF意味着您正在将控制权交还给数据库。这是正确的写作。默认值为OFF,表示您无法插入IDENTITY列。