Нет способа выполнить сценарий SQL из диспетчера запросов SQL Server, например, синтаксис @ {file.sql} oracle sqlplus? - PullRequest
1 голос
/ 26 октября 2010

Как видно из заголовка, в Oracle вы можете выполнить следующую команду в SQL * Plus:

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?Я сталкивался со многими ситуациями, когда я мог бы использовать это, но я не мог найти способ сделать это.

Ответы [ 4 ]

5 голосов
/ 26 октября 2010

Вы на самом деле не сравниваете подобные инструменты, как здесь.

Эквивалентным инструментом SQL * Plus в SQL Server является SQLCMD Utility .

В частностивас заинтересует переключатель -i , поскольку он позволяет вам в качестве входных данных предоставить файл .sql.

Редактировать:

В ответ на ваш комментарий вы можете использовать системную хранимую процедуру xp_cmdshell , чтобы запустить форму приглашения в пакете T-SQL, которая позволяет использовать SQLCMD.На мой взгляд, не самое элегантное решение, но оно должно работать.

1 голос
/ 25 июля 2012

Существует также инструмент SQLS * Plus, который можно использовать для выполнения сценариев внутри сценария

1 голос
/ 26 октября 2010

Если вы используете более поздние версии SQL Server (2005 и 2008), посмотрите, подходит ли вам команда :r в SQLCMD:

: r Разбирает дополнительные операторы Transact-SQL и команды sqlcmd из файла, указанного , в кэш операторов. Если файл содержит инструкции Transact-SQL, за которыми не следует GO, необходимо ввести GO в следующей строке: r. От sqlcmd Утилита

1 голос
/ 26 октября 2010

Использовать утилиту isql http://msdn.microsoft.com/en-us/library/aa214007(SQL.80).aspx

issql ... -iinputfile

...