【问题标题】:SQL Server syntax for Insert statementInsert 语句的 SQL Server 语法
【发布时间】:2020-07-27 22:14:50
【问题描述】:

我知道下面的语法不正确,但希望有人能告诉我在 SQL Server 中正确的语法是什么:

INSERT INTO TBL1 (SELECT * FROM TBL2 WHERE PK not in (SELECT PK FROM TBL1))

TBL1TBL2 就列和数据类型而言都是相同的。

【问题讨论】:

  • 你看过Official Docs吗?他们应该永远是您的第一个停靠港。
  • 最佳做法是始终列出要插入的列和选择的列。这样可以避免很多潜在的问题。

标签: sql sql-server database sql-insert


【解决方案1】:

insert 中表名后面的括号是列的位置。你可以不用括号来表达:

INSERT INTO TBL1
    SELECT *
    FROM TBL2
    WHERE PK NOT IN (SELECT PK FROM TBL1);

或遵循最佳实践并列出列:

INSERT INTO TBL1 (col1, col2, col3, . . . )
    SELECT col1, col2, col3, . . . 
    FROM TBL2
    WHERE PK NOT IN (SELECT PK FROM TBL1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多