我正在创建一个批处理文件,我从IP地址恢复数据库,然后在数据库上执行几个.sql文件。在几个.sql文件中有声明和设置的变量。但是这个过程必须在许多机器上完成,每台机器上的每个变量都有不同的值。
所以我可以通过IP的用户输入恢复数据库,但我不知道如何使用批处理脚本命令来更改变量值。
例如,在其中一个.sql文件中,声明了变量@store并将其设置为某个随机数。我想通过批处理文件更改该号码。
我正在使用windows和sql server express 2008 r2
答案 0 :(得分:4)
您可以将"scripting variables"与SQLCMD一起使用。
以下是该MSDN页面的示例:
您还可以使用-v选项设置脚本中存在的脚本变量。在以下脚本中(文件名为testscript.sql),ColumnName是一个脚本变量。
USE AdventureWorks2012;
SELECT x.$(ColumnName)
FROM Person.Person x
WHERE c.BusinessEntityID < 5;
然后,您可以使用-v选项指定要返回的列的名称:
sqlcmd -v ColumnName ="FirstName" -i c:\testscript.sql
要使用相同的脚本返回其他列,请更改ColumnName脚本变量的值。
sqlcmd -v ColumnName ="LastName" -i c:\testscript.sql