是的,您可以使用 sqlcmd 来执行此操作。
首先 - 变量。您可以使用$(variablename)
要替换变量的任何位置来引用 .sql 文件中的变量。例如,
use $(dbname);
select $(columnname) from table1 where column= '$(var1)'
然后使用以下命令调用 sqlcmd(注意参数 -v 变量)
sqlcmd -S servername -d database -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred"
为了将其输出到文件,您在最后标记 > filename.txt
sqlcmd -S servername -d database -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred" > filename.txt
如果要输出到 csv,还可以使用参数 -s 指定分隔符(注意服务器的大写 S 的 idfference)。所以现在我们有
sqlcmd -S servername -d database -s "," -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred" > filename.csv
如果要将多个命令输出到同一个 csv 或 txt 文件,请使用 >> 而不是 >,因为它会添加到文件的底部,而不是替换它。
sqlcmd -S servername -d database -s "," -i "yoursqlfile.sql" -v dbname="database" columnname="column" var1="Fred" >> filename.csv
要为多个脚本运行此程序,您可以将语句放在一个批处理文件中,然后每周更改变量。