从bat文件运行大型SQL查询

时间:2019-06-25 08:08:24

标签: sql sql-server-2008

我正在尝试使用从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...

1 个答案:

答案 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"