在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?
答案 0 :(得分:7)
没有; SET IDENTITY_INSERT ... ON
表示你正在控制IDENTITY
;设置它OFF
意味着您正在将控制权交还给数据库。这是正确的写作。默认值为OFF
,表示您无法插入IDENTITY
列。