SQLCMD 传入变量

标签 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';

最佳答案

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

关于SQLCMD 传入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945321/

相关文章:

java - 从批处理文件中的 Java 应用程序获取退出代码

c# - 在 SQL 查询或 UI 代码中计算金额(数量 * 价格)

sql - 如何使用生成多行的 select 语句更新表?

sql - 选择查询需要更长的时间才能返回结果

java - 使用 SQL 子查询计算表中的行数,并根据结果通过/失败 java 测试

sql - 无法将 Windows 计数器表中的字符转换为日期时间

windows - 使用 xcopy 批量覆盖只读文件

sql - 如何按查询顺序获取一组的所有日期?

sql - SQL Server 中一个触发器会激活另一个触发器吗?

python - 从 Cygwin 批处理自动执行 python 脚本