2012-11-17 98 views
3

我想從命令行鍼對SQL Server 2005數據庫運行一系列SQL語句。在命令行上執行一系列SQL命令

當我啓動第一個發言

osql -E -S <Server_Name>\<Instance_Name> -d <Server_Name> 

它會從那裏提示符窗口1>我無法通過腳本進一步進行後。

如何給輸入1>提示我的意思是讓下一個SQL語句

BACKUP DATABASE TO DISK = 'c:\test.bak' WITH INIT,SKIP 

最後exit到提示

我& &試過,但我想這是隻有命令行命令。

回答

2

您AE尋找在SQLCMD工具-Q開關(不使用OSQL上SQLSERVER 2005或更高版本)(類型SQLCMD /?查看所有選項)或魯科特了上msdn

sqlcmd -E -S <Server_Name>\<Instance_Name> -d <Server_Name> -Q "BACKUP DATABASE TO DISK = 'c:\test.bak' WITH INIT,SKIP" 

或者,您可以創建一個sqlscript文件,您可以在其中放入要執行的所有sql語句。假設你的名字你的文件myscript.sql osql命令會是這樣的:

sqlcmd -E -S <Server_Name>\<Instance_Name> -d <Server_Name> -i myscript.sql 
+0

此外:從SQL Server ** 2005開始** - 您應該使用'sqlcmd'而不是'osql' –

+0

Tha nks Rene !!!它解決了我的問題... – kunpr05

1

也許你可能想嘗試一個小竅門,從其他的問題出現在這個論壇(這是不幸的是刪除)。

您可以直接在命令下面的行插入命令的輸入,然後執行文件NOT作爲批處理文件,但作爲輸入por cmd.exe執行(類似於Linux中的文檔)。例如:

script.TXT:

​​

執行以前的 「腳本」 是這樣的:

cmd < script.TXT 

如果執行此測試,請報告結果...

安東尼奧

+0

感謝您的回覆,但它並沒有幫助我...因爲我再次使用script.txt中的一些批處理命令你建議... – kunpr05

+0

你可以執行以前的script.TXT文件在你的正常批處理文件,也就是在你的批處理文件中包含'cmd Aacini