将参数传递给文件中的SQL查询

时间:2015-10-08 17:20:58

标签: sql-server shell parameters

我有以下查询(称之为queryA):

Select * from TableA where FieldA in ('foo', 'bar')

我想写一个(shell?)脚本文件,如:

execute queryA take parameter values from ParamFileA write output to OutputFileA

ParamFileA将包含('foo', 'bar')

有可能吗?这适用于SQL Server。

1 个答案:

答案 0 :(得分:1)

制作包含以下内容的.bat文件(有关详细信息,请阅读REM评论):

REM This script expects these parameters: Path of file with query to run, path of file with parameters, path of file to save output in.
set SQLFILE=%1
set PARAMFILE=%2
SET OUTPUTFILE=%3

SET TEMPFILEPATH=C:\Temp\tempsqlstatementt.sql

REM Combine SQL command and parameters into one temporary file.
copy /B %SQLFILE% + %PARAMFILE% %TEMPFILEPATH%

REM Execute combined SQL command and write to specified output
sqlcmd -S myServer\instanceName -i C:\Temp\tempsqlstatementt.sql -o %OUTPUTFILE%

REM Cleanup the temp file.
DEL %TEMPFILEPATH% /F /Q

您可以像这样调用此bat文件:

ExecuteWithParams QueryFile ParamFile OutputFile

这里又是,但我放入了实际的文件路径:

C:\Users\You\>ExecuteWithParams.bat QueryFile.sql ParamFile.sql OutputFile.txt

此外,如果path上没有sqlcmd,则必须将sqlcmd的路径放入bat文件中。