如何在SSMS SQLCMD查询窗口运行含SQL脚本的.txt或.sql文件?
在SSMS的SQLCMD模式中运行脚本文件的操作方法
兄弟,我懂你已经在CMD里用sqlcmd跑起来脚本了,现在想转到SSMS的SQLCMD模式里干同样的事对吧?其实操作超简单,我给你一步步说清楚:
第一步:开启SSMS的SQLCMD模式
首先得把普通查询窗口切换成SQLCMD模式,步骤如下:
- 打开SSMS,先连接到你的目标实例(就是你CMD命令里的
pcName,用Windows身份验证,对应-E参数) - 新建一个查询窗口,然后点击顶部工具栏的SQLCMD模式按钮(也可以通过菜单:
查询→SQLCMD模式,快捷键Alt+Q) - 确认开启成功:窗口右下角会显示“SQLCMD”字样,这就说明模式切换好了
第二步:运行.txt或.sql脚本文件
在SQLCMD模式下,我们用:r命令来调用外部脚本文件,语法很直观,和CMD里的-i参数作用一致。
示例1:运行你的.txt脚本
直接在查询窗口里输入下面的命令,然后按F5或者点击执行按钮就行:
:r "C:\Users\user\Documents\SqlCmdTest.txt"
示例2:运行.sql脚本文件
操作和.txt完全一样,只是文件扩展名不同而已。比如你有个MyBusinessScript.sql文件在相同路径,就输入:
:r "C:\Users\user\Documents\MyBusinessScript.sql"
执行后就会运行这个.sql文件里的所有SQL语句。
一些实用小提示
- 如果你的文件路径里包含空格,一定要用双引号把整个路径括起来,不然会触发语法错误
- 确保SSMS当前连接的实例和数据库是你需要的(毕竟SSMS是提前连接好实例的,不像CMD里要指定
-S和-E,所以连接的时候要选对pcName,用Windows身份登录) - 你还可以在同一个SQLCMD窗口里多次使用
:r命令,一次性批量调用多个脚本文件,比如:
:r "C:\Scripts\InitializeDB.sql" :r "C:\Scripts\ImportData.txt"
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

