2011-07-11 40 views

回答

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注入攻擊或有人進入破壞性的東西。

+0

這似乎並沒有工作,腳本退出而不插入任何行,我沒有得到任何錯誤文件或者 –

+0

@克里斯 - 如果你手動放在變量操作呢?另外請記住,如果他們是字符串,您將需要添加單引號來包裝它們 – JNK

+0

如果我用$符號替換值,它的工作原理。變量設置不起作用。我假設這是因爲這些值無法傳遞到SQLcmd程序 –

0

感謝評論人。

該問題似乎是我的語法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 
+0

你應該幫助JNK糾正他們的答案。這不是一個。 – Joey