2010-10-26 18 views
1

就像標題所說,在Oracle中,你可以在SQL *發出以下命令加:沒有辦法從SQL Server查詢管理器像@ {file.sql} oracle sqlplus語法執行SQL腳本?

SQL> select something from anothertable; #sql 
SQL> @{/home/me/somescript.sql};   #load sql from file and execute it 
SQL> do something else in script;  #other sql 

而不必文件 - >打開SQL腳本,其加載到用戶界面。

在SQL Server查詢管理器中是否有等價物?我偶然發現了很多可以使用它的情況,但我無法找到實現它的方法。

回答

1

如果使用SQL Server(2005 & 2008)的後期版本,看看是否在SQLCMD的:r命令爲你工作:

:r <filename> 從<文件名>指定的文件中解析附加的Transact-SQL語句和sqlcmd命令到語句緩存。 如果文件包含GO後面的Transact-SQL語句,則必須在隨後的行中輸入GO:r。sqlcmd Utility

+0

謝謝Shannon,可惜在查詢分析器/管理工作室中不能使用該命令。但是,當將SQLCMDs -i開關與包含:r命令的腳本結合使用時,這就是我一直在尋找的。 – 2010-10-27 06:25:49

+0

編輯:好的,可以直接在SQLcmd shell中包含並執行腳本,但不能構建引用其他腳本的腳本,即oracle方式。在SQL腳本文件中包含:r並將該文件加載到SQLCMD中時,它無法識別:r命令並且無法執行。 – 2010-10-27 06:31:23

5

你並不是真的比較像這樣的工具。

SQL Server中SQL * Plus的等效工具是SQLCMD Utility

特別是您會對-i開關感興趣,因爲這允許您提供.sql文件作爲輸入。

編輯:

在回答您的評論,你可以看看使用存儲過程xp_cmdshell系統的T-SQL批處理,允許您使用SQLCMD內啓動一個提示的形式。在我看來,這不是最優雅的解決方案,但它應該起作用。

+0

感謝您的hint.what我要實現的是從引用另一個腳本在腳本中執行腳本。方案是一種遷移,我必須從sql中引用幾個腳本,無論是SQL Management Studio還是isql,都無關緊要。但我不知道是否有辦法以SQL * Plus的方式實現它。 – 2010-10-26 08:01:23

+0

使用-i開關,我必須將焦點從ISQL切換回CMD併發出另一個ISQL -i file.sql命令。 – 2010-10-26 08:02:46

+0

xp_cmdshell將啓動相對於服務器的shell,而不是相對於ovm需要運行批處理的位置。 – 2010-10-26 16:47:40

1

另外也SQLS * Plus的工具,您可以使用腳本

相關問題