从 SQL Server 中的选择查询错误插入

Ran*_*Das 0 sql sql-server sql-server-2008

我正在使用以下查询将数据从一个表插入到另一个表:

DECLARE @MATNO NVARCHAR(10), @GLOBALREV INT, @LOCALREP INT

SET @MATNO = '7AGME'
SET @GLOBALREV = 11
SET @LOCALREP = 1

INSERT INTO CIGARETTE_HEADER 
VALUES 
    (SELECT * 
     FROM CIGARETTE_HEADER_BK1 
     WHERE MATERIAL_NUMBER = @MATNO 
       AND GLOBAL_REVISION = @GLOBALREV 
       AND LOCAL_REVISION = @LOCALREP)
Run Code Online (Sandbox Code Playgroud)

两个表中的列相同,但出现以下错误:

消息 156,级别 15,状态 1,第 7 行
关键字“SELECT”附近的语法不正确。

消息 102,级别 15,状态 1,第 7 行
')' 附近的语法不正确。

你能告诉我这里的错误吗?

Gio*_*sos 6

您不需要VALUES关键字:

INSERT INTO CIGARETTE_HEADER  
SELECT * FROM CIGARETTE_HEADER_BK1 
WHERE MATERIAL_NUMBER = @MATNO AND 
      GLOBAL_REVISION = @GLOBALREV AND 
      LOCAL_REVISION = @LOCALREP
Run Code Online (Sandbox Code Playgroud)

还最好明确引用参与INSERT语句的两个表的每个字段名称。