c# - C# 中的 SET IDENTITY_INSERT 用法

标签 c# sql

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

我是唯一一个写信给那张 table 的人。他们的数据库已经建立,他们不能/不会重建表。因此,他们在他们的表 (qbCUST) 上设置了一个自动增量。我需要绕过这个。

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

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();
    }
}

我不应该先关闭标识插入吗?

最佳答案

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

关于c# - C# 中的 SET IDENTITY_INSERT 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37878528/

相关文章:

c# - 尝试序列化 [NotMapped] Entity Framework 属性以供 Breeze 使用

c# - ListView 内的 TextBox 绑定(bind)到对象,双向绑定(bind)不起作用

c# - 如何按多个字段分组并获取另一个字段的计数

sql - Hive 中的分层抽样

sql - 这个 SQL 注入(inject)是如何工作的?需要解释

mysql - 如何解析group by语句中的<first_value>聚合[SNOWFLAKE] SQL

c# - 以相反的顺序从字符串中获取值

c# - 绑定(bind)的 Xamarin.iOS 库子类在模拟器上崩溃

C# 从 Cosmos db 获取带有数组的 json

mysql - 如何将mysql数据库同步到外部数据源