SQLCMD传入变量

时间:2015-11-26 18:48:56

标签: sql sql-server batch-file ssms sqlcmd

我有一个批处理文件,它运行许多*.sql个文件。目前,所有变量都已在sql文件中进行了硬编码。我想知道如何传递SQLCMD批处理文件中的变量值。

变量名称示例:

DECLARE @TW_FROM DATETIME
DECLARE @TW_TO DATETIME
SET @TW_FROM = '2015-11-16 00:00:00';
SET @TW_TO = '2015-11-16 00:00:00';

1 个答案:

答案 0 :(得分:1)

您还可以使用-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

更多文档: https://msdn.microsoft.com/en-us/library/ms188714.aspx