У меня есть набор скриптов, которые нужно запускать в определенном порядке. Я хотел бы создать «главный файл», в котором перечислены все другие файлы и их правильный порядок. В основном, как включаемый файл из C ++ или ASP / VBScript.
источник
У меня есть набор скриптов, которые нужно запускать в определенном порядке. Я хотел бы создать «главный файл», в котором перечислены все другие файлы и их правильный порядок. В основном, как включаемый файл из C ++ или ASP / VBScript.
Если вы используете SQLCMD , вы можете :r FileName
включить отдельный файл .sql.
: r FileName
Анализирует дополнительные операторы T-SQL и команды SQLCMD из файла, указанного в FileName, в кэш операторов. FileName читается относительно каталога запуска Visual Studio. Файл читается и исполняется после того, как встречается терминатор пакета. Вы можете выполнить несколько команд: r. Файл может включать в себя любую команду SQLCMD, включая терминатор пакета, определенный в разделе «Инструменты», «Параметры». Вы можете использовать: r в сценарии перед развертыванием или после развертывания, чтобы включить другие сценарии.
В смысле древних препроцессоров С точно нет
Если у вас есть набор файлов с заданными абсолютными путями, которые вы хотите включить в безусловном порядке, вы можете использовать инструмент командной строки sqlcmd или использовать SSMS в sqlcmdmode, как упомянуто @mfredrickson и @Marian.
Но если вам нужны относительные пути или условные включения, вам нужно использовать некоторую оболочку, вызывающую sqlcmd (или один из его устаревших предшественников isql или osql).
В настоящее время на моей работе в этой ситуации я проверяю и расширяю старые VBS и HTA-код. Я не совсем счастлив, но это прагматичное решение. Это работает, и конечный пользователь дома с графическим интерфейсом hta, и никакой дополнительной установки программного обеспечения не требуется.
Для свежего дизайна я бы начал думать об использовании WPF и PowerShell для упаковки вызовов sqlcmd, но с нашими нынешними клиентами я не могу предположить наличие PowerShell V2.
В прежние времена мы писали простые пакеты cmd для этой цели, некоторые из них все еще используются.
Я думаю, что есть текущие инструменты, особенно те, которые нацелены на рабочие процессы, которые могут быть здесь подходящими. Я не знаком с этим.
источник
Наряду с режимом SQLCMD в Management Studio вы также можете использовать командный файл для использования в качестве основного файла для организации и вызова всех ваших файлов sql с помощью утилиты SQLCMD .
Режим SQLCMD - это симуляция использования утилиты в Management Studio, поэтому между режимами нет большой разницы. За исключением того, что иногда я предпочитаю запускать пакеты (больше не нужно открывать M Studio ... загружать правильные базы данных ... и т. Д.). Я предпочитаю настраивать все в пакете, включая выходные файлы.
источник
Я согласен, препроцессор T-SQL крайне необходим. Я разработал свой собственный на C #, что заняло у меня около часа. Помимо контроля над порядком выполнения сценариев SQL, он также позволяет мне иметь макросы, которые выглядят как скалярные UDF и удобны в использовании, но работают так же быстро, как и встроенные UDF.
источник
Мне нравится ответ bernd_k . В зависимости от того, как вы назвали свои сценарии, например, включение числа, SQL Server PowerShell (SQLPS) может использоваться, если вы работаете с SQL Server 2008 или более поздней версии. Тогда даже если бы вы использовали SQL 2005, вы могли бы использовать PowerShell и SMO для 2005.
Примечание: я полагаю, что SQLCMD будет в конечном итоге включен в список устаревших и заменяется на SQLPS, PowerShell.
Есть также несколько других вариантов.
источник
SQLCMD
дайте мне знать, потому что большинство из того, что я нахожу, ссылается на PowerShell . Я также не вижу ссылки, гдеsqlcmd
используется SSDT, за исключением, может быть, сравнения схем, но я никогда не использую сгенерированные сценарии.