SQL Server Management Studio 查询中使用 SQLCMD 模式

article/2025/11/10 6:32:30

从 SQL Server 2005 开始,可以在 SQL Server Management Studio 查询编辑器中使用 SQLCMD 模式执行 TSQL。要在查询编辑器中编写或编辑 SQLCMD 脚本,需要启用 SQLCMD 模式。默认情况下,此模式是关闭的。

若要启用 SQLCMD 模式,请单击 “查询” 菜单下的 “SQLCMD模式” 选项:

图片

设置默认启用 SQLCMD 模式,在选项中设置:

图片

所有 SQLCMD 命令都以冒号开头,命令的背景色也将变成灰色。连接到指定的实例,命令如下:

:CONNECT HZC,1433
SELECT SUSER_NAME()
GO
:CONNECT HZC,1433 -U AAAAA -P AAAAA
SELECT SUSER_NAME()
GO

图片

可以看到,一个查询窗口中,连接到了2个实例,并执行相应的SQL语句,是不是方便很多了。使用时一定要注意,每个连接执行的脚步最后,一定要加上批处理执行符号 “GO”。

此外,还可以使用 SQLCMD 模式中的变量设置(:setvar)

-- :setvar <变量名> <变量值>
:setvar srv HZC,1433--连接到指定实例
:CONNECT $(srv)
PRINT SUSER_NAME()
GO--指定用户密码访问
:CONNECT $(srv) -U AAAAA -P AAAAA
PRINT SUSER_NAME()
GO

当处理较多的服务器或过度变量参与时,使用变量是非常有用的。既然 SQLCMD 模式引用到 SSMS 中,那么它的最佳实践场景是什么呢?当然是多服务器的操作了!多服务器的操作,无非是使用了 AlwaysOn FCI、AlwaysOn AG、镜像、复制、备份还原等高可用及容灾方案。

例如,在 AlwaysOn AG 中,主节点创建了数据库 TestDB,需要手动配置数据库的高可用(未设置自动种子的情况)。这时候需要来回在各主备副本中执行脚本,非常不方便。而使用 SQLCMD 模式,在一个查询窗口就能完成所有操作。

如下:

-- 设置主备服务器变量
:setvar primarysrv 192.168.1.110
:setvar secondarysrv 192.168.1.111--主副本:备份数据库
:CONNECT $(primarysrv)
BACKUP DATABASE TestDB TO DISK ='E:\bak\TestDB.BAK' WITH COMPRESSION,INIT
BACKUP Log TestDB TO DISK ='E:\bak\TestDB.BAK' WITH COMPRESSION
GO--辅助副本:还原数据库
:CONNECT $(secondarysrv)
RESTORE DATABASE [TestDB] FROM  DISK = '\\192.168.1.110\bak\TestDB.BAK'  WITH FILE=1, NORECOVERY
RESTORE LOG [TestDB] FROM  DISK = '\\192.168.1.110\bak\TestDB.BAK'  WITH FILE=2, NORECOVERY
GO--主副本:添加可用性数据库
:CONNECT $(primarysrv)
DECLARE @SQL VARCHAR(500)
SELECT @SQL = 'ALTER AVAILABILITY GROUP ['+name+'] ADD DATABASE [TestDB];'  FROM sys.availability_groups
EXEC(@SQL)
GO--辅助副本:设置可用性数据库
:CONNECT $(secondarysrv)
DECLARE @SQL VARCHAR(500)
SELECT @SQL = 'ALTER DATABASE [TestDB] SET HADR Availability GROUP = ['+name+']; '  FROM sys.availability_groups
EXEC(@SQL)
GO

替换另一个数据库名称,也能很快设置数据库的高可用,即使有更多的副本,也能很快建立数据库高可用同步。SQLCMD 模式的优点也就体现出来了。这种模式比起 “已注册服务器”,不需要来回切换查询窗口,对数据库的维护更加方便了!


http://chatgpt.dhexx.cn/article/vQfTrRhm.shtml

相关文章

sqlcmd去掉表头和X行受影响

使用sql语句导出到文件 sqlcmd -d test01 -U test01 -P test01 -S testdb.database.windows.net -Q "select * from test01" -o "test01.csv" -s "," -W -h-1 -k1 -d:数据库名 -U 用户名 -P 密码 -S 服务器名 -Q 执行查询后退出 -o 输出…

sqlcmd 命令

SQLCMD的介绍 文章转载自&#xff1a;http://blog.sina.com.cn/s/blog_3eec0ced0100mhm2.html 最近经常用到超过80M *.sql文件的导入问题。 上网找了一下&#xff0c;发现超过80M的文件是不能在查询分析器中执行的。 找了些解决方案&#xff0c;个人感觉最简单的方法就是这个…

cmd执行服务器sql文件命令行,Dos命令提示符下 - 用sqlcmd执行*.sql语句

Dos命令提示符下 - 用sqlcmd执行*.sql语句 1)在Dos命令下执行sqlcmd命令(当然事先需要将sqlcmd增加到环境变量中去), 2)下面白色部分替换为服务器名或计算机名即可 sqlcmd -S (local) -U sa -P 123 -d testdb -i C:\temp\data.sql 参数说明:-S 服务器地址 -U 用户名 -P 密码…

sql安装弹出sqlcmd_SQL Server中SQLCMD实用工具概述

sql安装弹出sqlcmd This article is aimed at helping you understand the sqlcmd utility. Of course, this is a tool most of us have used it at several occasions given that the tool has been around for a decade now. However, to be a solid starting point, this a…

SQLServer知识:sqlcmd用法笔记

今天给大家介绍sqlcmd用法笔记&#xff0c;希望对大家能有所帮助&#xff01; 1、介绍 sqlcmd是一个 Microsoft Win32 命令提示实用工具&#xff0c;可以通过该命令工具实现SQL语句、脚本的执行&#xff0c;并且可以实现脚本任务的自动化。 2、使用场景 2.1 针对大文件脚本的执…

Sqlcmd使用详解

Sqlcmd实用工具&#xff0c;可以输入 TRANSACT-SQL 语句、 系统过程和脚本文件&#xff0c;通过各种可用模式&#xff1a; 通过命令提示符。在中查询编辑器在 SQLCMD 模式下。在 Windows 脚本文件。在 SQL Server 代理作业的操作系统 (Cmd.exe) 作业步骤。 该实用工具使用 OD…

如何在CMD下写SQL语句

1、WinX->搜索环境变量 2、选择环境变量 3、在系统变量中找到Path&#xff0c;并双击进入 4、选择新建 5、选择安装MySQL的盘&#xff0c;找到bin&#xff0c;并复制路径到刚刚新建的Path中&#xff0c;例如笔者安装的盘是D盘 6、把复制好的路径放到Path中 7、WinR->直…

jquery设置cookie、删除cookie、获取cookie

1.引入两个js 去bootcdn搜索就行。 jquery.js <script src"https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>jquery cookie <script src"https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"…

关闭浏览器 清除cookie

根据客户要求使用dedecms v5.6版本&#xff0c;发现了一个会员登录的bug&#xff01;看来dedecms也不过如此&#xff01; 首先说说bug所在&#xff1a;在会员登录页面 /member/index.php 登录的时候 有效期如果选择‘即时’&#xff0c;那么就永远也登不上去了&#xff01; 原因…

删除cookie删不掉的问题

文章转自&#xff1a; https://blog.csdn.net/swimming_in_it_/article/details/80290547 https://blog.csdn.net/huanshiwushuang/article/details/70172536 http://php.js.cn/blog/delete-cookie/ 不知道能不能解决你的问题,但是我来说说我的经历&#xff0c;昨天在用Yii…

Javascript清除所有的cookie

只需一个js函数即可&#xff1a; //清除所有cookie函数function clearAllCookie() {var keys document.cookie.match(/[^ ;](?\)/g);if(keys) {for(var i keys.length; i--;)document.cookie keys[i] 0;expires new Date(0).toUTCString()}} 测试的所有代码如下&#xf…

JS创建、获取、删除 cookie 方法

js 创建 cookie 方法 // 没有设置 cookie 过期时间的话&#xff0c;默认是 会话cookie(浏览器关闭时&#xff0c;该cookie失效&#xff0c;被删除) document.cookie cname "" value; // 设置了过期时间的话&#xff0c;在设置的时间段内 cookie 一直存在有效&…

浏览器cookie怎么清除,彻底清除上网痕迹只需这几步

很多用户对cookie不是很了解&#xff0c;我们使用windows系统电脑浏览各个网站的时候都会产生cookie&#xff0c;cookie记录用户名、密码等信息。显而易见的是&#xff0c;cookie和网络隐私安全息息相关&#xff0c;有些恶意网站会利用cookie来侵犯用户隐私安全。因此清理cooki…

vcruntime140.dll发生访问冲突

0x6EF538DC (vcruntime140.dll)处引发的异常: 0xC0000005: 写入位置0x00000000 时发生访问冲突 发生以上问题&#xff0c;有可能为内存不足引起&#xff0c;可尝试分配更大内存。 在本次报错中&#xff0c;我们将1024*1024*8的BUFFER_SIZE扩大为1024*1024*20&#xff0c;成功解…

电脑提示vcruntime140_1.dll丢失怎么安装?

许多用户在使用电脑的时候&#xff0c;在安装运行某些程序的时候&#xff0c;电脑突然提示由于找不到vcruntime140_1.dll&#xff0c;无法继续执行代码&#xff0c;遇到这种情况我们应该怎么解决呢&#xff1f;下面小编就带着大家一起看看吧&#xff01; 首先是打开电脑浏览器后…

电脑提示vcruntime140_1.dll丢失的正确修复方法

vcruntime140_1.dll是vs2010编译的程序默认的库文件它的丢失易导致游戏、应用软件等程序运行出现错误&#xff0c;致使程序无法正常运行&#xff0c;下面小编教大家电脑提示vcruntime140_1.dll丢失的正确修复教程 首先打开一个360&#xff0c;搜狗等等电脑浏览器&#xff0c;输…

vcruntime140_1.dll缺失

问题&#xff1a;安装mysql-8.0.29执行mysql -install命令出现由于找不到VCRUNTIME140_1.dll&#xff0c;无法继续执行代码。 解决方法&#xff1a;下载VCRUNTIME140_1.dll 把文件放到C:\Windows\System32目录下

由于找不到vcruntime140_1.dll,无法继续执行代码重新安装程序可能会解决此问题

问题场景&#xff1a; 提示&#xff1a;由于找不到VCRUNTIME140_1.dll,无法继续执行代码&#xff0c;重新安装程序可能会解决此问题。 问题描述 提示&#xff1a;一般是重置完电脑打开软件时出现&#xff0c;或者是在安装软件的过程中会出现以上问题 先查看是否已经安装有 Vi…

【vcruntime140.dll文件下载】vcruntime140.dll丢失的解决方法

vcruntime140.dll文件对一些电脑软件、电脑游戏等程序的正常运行起到关键性作用。对于弹出缺少此类文件的弹窗&#xff0c;用户们很多时候也摸不着头脑&#xff0c;程序明明上次都能正常运行&#xff0c;突然就弹出缺少vcruntime140.dll文件的提醒窗口。通过小编此次编辑的文章…

unity报错,提示找不到vcruntime140

重装系统后&#xff0c;发现打开unity提示:unity找不到vcruntime140,等好几个.dll格式的文件 于是就想到了系统环境缺少dll&#xff0c;于是打开这个DirectX修复工具4.1&#xff0c;点击检测并修复&#xff0c;提示修复完成&#xff0c;最好重启一下&#xff0c;ok啦 这里我已…