У мене є набір сценаріїв, які потрібно запустити в певному порядку. Я хотів би створити "головний файл", в якому перераховані всі інші файли та їх правильний порядок. В основному, як включити файл з C ++ або ASP / VBScript.
У мене є набір сценаріїв, які потрібно запустити в певному порядку. Я хотів би створити "головний файл", в якому перераховані всі інші файли та їх правильний порядок. В основному, як включити файл з C ++ або ASP / VBScript.
Відповіді:
Якщо ви використовуєте SQLCMD , ви можете використовувати :r FileNameдля включення окремого .sql-файлу.
: r Ім'я файлу
Розбирає додаткові оператори T-SQL та команди SQLCMD з файлу, визначеного FileName, в кеш оператора. Ім'я файлу читається відносно каталогу запуску для Visual Studio. Файл зчитується та виконується після того, як зустрічається термінатор партії. Ви можете видавати кілька: r команд. У файл можна включити будь-яку команду SQLCMD, включаючи пакетний термінатор, визначений у меню Інструменти, Параметри. Ви можете використовувати: r у скрипті перед розгортанням або після розгортання для включення інших сценаріїв.
У сенсі стародавніх препроцесорів С точно немає
Якщо у вас є набір файлів із заданими абсолютними шляхами, які ви хочете включити в безумовному порядку, ви можете використовувати інструмент командного рядка sqlcmd або використовувати SSMS у sqlcmdmode, як згадували @mfredrickson і @Marian.
Але якщо ви хочете відносні шляхи або умовні включення, вам потрібно скористатися деякою обгорткою, яка викликає sqlcmd (або одним із її застарілих попередників isql або osql).
В даний час на своїй роботі в цій ситуації я переглядаю та розширюю старий vbs та hta-код. Я не зовсім задоволений, але це прагматичне рішення. Він працює, і кінцевий користувач знаходиться вдома з hta GUI, і додаткова установка програмного забезпечення не потрібна.
Щодо нового дизайну, я б почав думати про використання WPF та PowerShell для завершення дзвінків sqlcmd, але з нашими нинішніми клієнтами я не можу припустити наявність PowerShell V2.
Ще в колишні часи ми писали для цього прості партії cmd, оме з них досі використовуються.
Напевно, існують поточні інструменти, особливо ті, які орієнтовані на Workflow, які тут можуть бути підходящими. Я з ними не знайомий.
Поряд з режимом SQLCMD в студії управління, ви також можете використовувати пакетний файл, який буде використовуватися як головний файл для упорядкування та виклику всіх файлів sql за допомогою утиліти SQLCMD .
Режим SQLCMD - це моделювання використання утиліти всередині студії управління, тому великої різниці між режимами немає. За винятком того, що колись я вважаю за краще запускати партії (більше немає відкриття M Studio ... завантаження правильних db ... тощо). Я вважаю за краще налаштувати все в партії, включаючи вихідні файли.
Я погоджуюся, препроцесор 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, за винятком, можливо, для порівняння схем, але я ніколи не використовую створені сценарії.