我試圖運行下面的查詢得到.BAT文件或SQLCMD提示用戶輸入
sqlcmd -STEMP7 -E -devolive_base -w256
-QEXIT("DECLARE @r int EXEC @r = usp_AddToObservationtbl $,$,$ SELECT @r")
我試圖讓BAT文件,以向用戶詢問3個變量....誰能幫我 ?
我試圖運行下面的查詢得到.BAT文件或SQLCMD提示用戶輸入
sqlcmd -STEMP7 -E -devolive_base -w256
-QEXIT("DECLARE @r int EXEC @r = usp_AddToObservationtbl $,$,$ SELECT @r")
我試圖讓BAT文件,以向用戶詢問3個變量....誰能幫我 ?
您可以使用set /p
得到變量:
set /p var1=Enter variable 1
set /p var2=Enter variable 2
set /p var3=Enter variable 3
...然後在命令行中使用它們:
sqlcmd -STEMP7 -E -devolive_base -w256 -QEXIT("DECLARE @r int EXEC @r = usp_AddToObservationtbl %var1%,%var2%,%var3% SELECT @r")
請記住,這仍然讓你打開到SQL注入攻擊或有人進入破壞性的東西。
感謝評論人。
該問題似乎是我的語法SQLCMD是不正確的,但它不會拋出一個錯誤,如果我用osql替換它,變量替換會起作用。所以這工作正常
set /p var1= Enter Userid
set /p var2= Enter Casino Name
set /p var3= Enter Screename
osql -STEMP7 -E -devolive_base -w256 -QEXIT("DECLARE @r int EXEC @r = usp_AddToObservationtbl %var1%,%var2%,%var3% SELECT @r") -b -oc:\bat\observation.log
exit errorlevel
你應該幫助JNK糾正他們的答案。這不是一個。 – Joey
這似乎並沒有工作,腳本退出而不插入任何行,我沒有得到任何錯誤文件或者 –
@克里斯 - 如果你手動放在變量操作呢?另外請記住,如果他們是字符串,您將需要添加單引號來包裝它們 – JNK
如果我用$符號替換值,它的工作原理。變量設置不起作用。我假設這是因爲這些值無法傳遞到SQLcmd程序 –