是否有批处理脚本命令,我可以在.sql文件中更改变量值?

时间:2013-02-06 22:13:57

标签: sql sql-server batch-file sqlcmd

我正在创建一个批处理文件,我从IP地址恢复数据库,然后在数据库上执行几个.sql文件。在几个.sql文件中有声明和设置的变量。但是这个过程必须在许多机器上完成,每台机器上的每个变量都有不同的值。

所以我可以通过IP的用户输入恢复数据库,但我不知道如何使用批处理脚本命令来更改变量值。

例如,在其中一个.sql文件中,声明了变量@store并将其设置为某个随机数。我想通过批处理文件更改该号码。

我正在使用windows和sql server express 2008 r2

1 个答案:

答案 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