sql-server - 插入查询在 SSMS 中有效,但在 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 文件中暂停了一下,它给出了消息。
消息 2714,级别 16,状态 6,服务器,第 1 行数据库中已经有一个名为“Table2”的对象。
这是查询(当然是混淆的):
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)))
解决方案
从您正在使用的目录中删除表创建脚本。
推荐阅读
- flutter - 将计时器再增加 30 秒
- reactjs - 无法使用 multer 保存图像并做出反应
- python - 尝试在熊猫中删除行时出错
- node.js - 如何使用2参数路由获取node.js
- javascript - React Native Expo 键盘每次按下都会关闭
- docker - 从 Hashicorp-Vault 服务器获取 .env 变量,在本地机器上运行 Docker 映像
- html - 具有行跨度的单元格中的文本框不应用宽度值
- javascript - 如何从 react-google-maps/api 获取可编辑折线的更新路径?
- r-markdown - 使用 bookdown book 中定义和说明的自定义块
- inheritance - 将具体课程定为最终课程是一种好习惯吗?