SQLCMD 传入变量

SQLCMD Passing in Variables

我有一个运行多个 *.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';

您还可以使用 -v 选项设置脚本中存在的脚本变量。在以下脚本中(文件名为testscript.sql),ColumnName 是一个脚本变量。

USE AdventureWorks2012;
SELECT x.$(ColumnName)
FROM Person.Person x
WHERE c.BusinessEntityID < 5;

然后您可以使用 -v 选项指定您想要 returned 的列的名称:

sqlcmd -v ColumnName ="FirstName" -i c:\testscript.sql

要使用同一脚本return 不同的列,请更改 ColumnName 脚本变量的值。

sqlcmd -v ColumnName ="LastName" -i c:\testscript.sql

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