插入查询在 SSMS 中有效,但在 SQLCMD 中无效

Insert Query Works In SSMS but not SQLCMD

我在批处理脚本中将 SQLCMD 设置为 运行:

sqlcmd -S <SQL Server Instance> -U <USER NAME> -P <PASSWORD> -i "<Path to .sql file>"

注意我需要文件路径中的引号因为它有空格

.sql 文件是这样的。

INSERT  INTO Table2 (Col1, Col2, Col3)
SELECT Col1 
,Col2
,Col3
FROM Table1

当我在 Sql Server Management Studio 中执行 SQL 时,运行 没问题。我在 .bat 文件中暂停,它给出了消息。

Msg 2714, Level 16, State 6, Server , Line 1 There is already an object named 'Table2' in the database.

这里是查询(当然混淆):

INSERT  INTO Table1 (Col1, Col2,Col3,Col4,Col5,Col6)
SELECT Col1
,Col2
,Col3
,Col4
,Col5
,cast(getdate() as date) as 'Col6'
FROM OrigTable 
WHERE exists(SELECT *
FROM ChkTable
WHERE DateCol > '20140101'
and OrigTable.Col1 = ChkTable.Col1)
and not exists(SELECT *
FROM Table1 inner join (SELECT max(Col6) as 'TopDate'
                          ,Col1
                          FROM Table1
                          GROUP BY Col1) a
on Table1.Col6 = a.TopDate
and Table1.Col1 = a.Col1
WHERE Table1.Col1 = OrigTableCol1
and (Table1.Col5 = OrigTable.Col3
or isnull(Table1.Col4,1) = isnull(OrigTable.Col4,1)))

从您正在使用的目录中删除 table 创建脚本。