【问题标题】:Regarding: Problem setting IDENTITY_INSERT ON when trying to insert data关于:尝试插入数据时设置 IDENTITY_INSERT ON 的问题
【发布时间】:2020-07-08 08:36:46
【问题描述】:

美好的一天,

我目前在使用 IDENTITY_INSERT 时遇到问题。我有一个具有所需权限的链接服务器设置。

我已经测试过我可以将 IDENTITY_INSERT 与一个简单的插入查询一起使用,但如果我使用以下代码,它就不起作用。

SET IDENTITY_INSERT table_name ON
INSERT INTO table_name SELECT * FROM OPENQUERY([server_name], 'SELECT * FROM ##Tmp2');

使用上述方法我收到以下错误: 只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表 'table_name' 中的标识列指定显式值。

谁能帮我解决这个请求,我想从不同服务器的 Tmp 表中选择数据,我不能忽略 IDENTITY 列,因为它是必需的或链接到其他表。

提前谢谢你。

【问题讨论】:

  • 您没有提供明确的列列表。 insert into table_name (aColumn, anotherColumn, ...) select aColumn, anotherColumn, ... from ...
  • @allmhuran - 非常感谢,我刚刚尝试过,它奏效了,你的生活更安全了。感谢您的帮助。
  • 不客气。养成在任何地方都使用显式列列表的习惯,它最终会拯救你,因为有一天有人会在表中添加一列,select *insert mytable select ... 会受到伤害:)

标签: tsql identity-insert


【解决方案1】:

答案由@allhuran 提供。

@allmHuran - '您没有提供明确的列列表。

insert into table_name (aColumn, anotherColumn, ...) select aColumn, anotherColumn, ... from ... '

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多