我正在尝试使用从Windows Scheduler调用的.bat文件从SQL Express数据库运行每月提取,并且SQL查询很大(大约50行),我不知道如何包含这么大的脚本在bat文件中,而不会将其全部拼合为一(长)行文本。是否可以使用回车(或类似命令)命令将查询保持为可读的SQL格式(如我下面所示)?
SELECT a.[Application_Number]
,case when c_MNI >0 then
100*(a.monthly_living_allowance +
a.New_Home_Loan_Repayment_Amount +
c_mc)/c_MNI
else 0 end as nsr_calc
,a.[FIN_Total_Net_Service_Ratio] as NSR
,a.Total_Annual_Income_Gross_Total as Annual_Gross
,a.fin_total_annual_income_net1 as Annual_Net
,C_MNI as MNI
,C_MC as MC
,a.[monthly_living_allowance] as MLA
,a.[Manual_MLA]
,a.[Manual_MLA_Flag] ....etc etc...
答案 0 :(得分:1)
您可以在bat文件中使用sqlcmd。将您的SQL脚本放在一个文件中,假设它是DoSomeQuery.sql。然后像这样在您的bat文件中调用sqlcmd:
sqlcmd -S servername -U user -P password -d DB_Name -i DoSomeQuery.sql
如果您有多个sql文件,则可以在bat文件中使用如下命令:
for /r . %%f in (*.sql) do sqlcmd -S servername -U user -P password -d DB_Name -i "%%f"