我有以下查询(称之为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。
答案 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文件中。