我試圖通過批處理文件來運行SQL查詢,當我試圖這樣做,我得到從用戶那裏得到輸入日期在批處理文件
無效的參數錯誤
以下是與我嘗試運行我的SQL腳本
:start
cls
@echo ------BILLING REPORT---------
@echo Please enter billing report Date in (YYYY/MM/DD)
@echo off
::set /P D = Enter Date:
::Date %Date% > Billing_Data.sql
PAUSE
sqlcmd -S database\instance_name -E -i "C:\Users\rb54761\Deskto\rb54761\Billing_Data_For_Certs_New.sql" > Output.txt -v Date = '2016-07-01'
:: -o "C:\Users\rb54761\Desktop\rb54761\Output.txt"
PAUSE
COPY C:\Users\rb54761\Desktop\rb54761\Output.txt C:\Users\rb54761\Desktop
PAUSE
goto start
爲了這個,我需要的東西 1.當用戶輸入的日期,數據將獲取一致的批處理文件荷蘭國際集團在該日期 2.我想補充在where子句,這樣的數據將相應地獲取 該日期下面是where子句,我想進入數據
WHERE
DateCompleted > CONVERT(DATETIME, '$(Date)', 102))
這不是SQL批處理!並且''Output.txt -v Date ='2016-07-01''在批處理文件中不會削減它!重定向不能跟隨參數。嘗試設置'echo on'來找出錯誤所在。但至少在我指出的地方。 –
Msg 102,Level 15,State 1,Server database \ instance_name,Line 28 '2016'附近的語法錯誤。 我認爲錯誤是在SQL文件中轉換日期時它不接受完整日期,而只是使用2016. –
@ Jean-FrançoisFabre - 不正確。文件重定向可以出現在命令的任何位置 - 前面,末尾或中間! OP命令中的後續參數是sqlcmd的參數,而不是重定向。 – dbenham