我有執行SQLCMD爲目錄中的每個SQL文件的批處理文件:SQLCMD批作業中使用模擬
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U user -P password -E -i"%%G"
但我必須要利用假冒的,我不希望有此線在每個文件中。我嘗試了2種可能的解決方案。
解決方案1:
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U user -P password -E -q "EXECUTE AS LOGIN = 'user2'" -i"%%G" -q "REVERT"
解決方案2:
sqlcmd /S servername /d databaseName -U user -P password -E -q "EXECUTE AS LOGIN = 'user2'"
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U user -P password -E -i"%%G"
sqlcmd /S servername /d databaseName -U user -P password -E -q "REVERT"
但是這兩種解決方案都不能正常工作。在這種情況下該做什麼?
嗨安德烈,我也試過,但我得到的消息,-q和-i是互斥的... – Doki
當我在SQL Server 2008 R2 Express上測試時,我沒有得到那種印象。但是,我不得不使用'osql'而不是'sqlcmd',因爲我測試的用戶是無密碼的,'sqlcmd'對於無密碼的用戶不適用。也許你可以嘗試'osql'? –
我試了一次。現在沒有得到相互排斥的消息,但獲得了與文本的DOS提示符:1> – Doki