:End
@ECHO 执行完毕
PAUSE
在范例中一开始便利用底层指令的 IF DEFINED 语法来测试我们自行定义的 Instance 环境变量是否存在,以决定程序逻辑的走向。
在范例中,通过 -i 菜单指定先前编写并保存的 T-SQL 指令文件 sqlcmd.sql,并以 -o 选项设置将执行结果输出至存放的文本文件。以 -E 选项设置登录验证的方式采用 Windows综合验证。由于笔者的机器上有两个 SQL Server 实例,因此再通过自行定义的 Instance 环境变量来决定连接的实例,若有定义 Instance 环境变量,则需要再利用 -S 选项设置连接的实例名称。
当然,整个范例中最大的特色是如何设置 T-SQL 指令文件中的变量部分,程序代码列 表2-4 分别列举了两种方式,一是通过 -v 选项搭配变量名称以及值的配对来设置,另一种是取与 T-SQL 指令文件中变量相同名称的系统环境变量,赋予值后直接调用 sqlcmd 装载该指令文件即可。
SqlCmd 程序执行完毕后,可以查看系统环境变量 ERRORLEVEL,若返回值为 0 代表执行结果无误,若值不等于 0,则代表有错误发生,程序代码列表2-4的执行结果如图2-32所示:
由于笔者在程序代码列表2-4中使用了底层命令的 Pause,因此你在执行过程中会需要按下任意键后才会继续执行。执行完毕后,你可以通过 Notepad 工具程序打开 Customers.log 和 Orders.log 两个普通文本文件,观察通过变量设置 T-SQL 语法内容的执行结果。
通过如上的批次执行方式,你可以在安装或维护日常 SQL Server 数据库时,周期地以后台的方式执行,而后查看执行记录来得知维护工作的结果。