У меня настроена база данных SQL Server, которой я управляю с помощью SQL Server Management Studio 17.
В этой базе данных у меня есть 27 таблиц, которые я поддерживаю, выполняя довольно простые OPENQUERY
сценарии каждое утро, что-то вроде:
DROP TABLE IF EXISTS [databasename].[dbo].[table27]
SELECT * INTO [databasename].[dbo].[table27] FROM OPENQUERY(OracleInstance, '
SELECT
table27.*
FROM
table27
INNER JOIN table26 ON table27.criteria = table26.criteria
WHERE
< filter >
< filter >
');
И это прекрасно работает! Но каждое утро сложно войти в SSMS, щелкнуть правой кнопкой мыши по моей базе данных, нажать «Новый запрос», скопировать 27 отдельных сценариев SQL и запустить их. Я ищу способ автоматизировать это. Моя директория, в которой хранятся эти скрипты, выглядит следующим образом:
Я не знаю, достижимо ли это в SSMS или как пакетный скрипт. Я бы вообразил для последнего какой-нибудь псевдокод, похожий на:
connect to sql server instance
given instance:
for each sql_script in directory:
sql_script.execute
Я попытался создать скрипт в SSMS, выполнив следующие действия:
Tasks -> Script Database ->
Но нет возможности выполнить файл .sql в рассматриваемых таблицах.
Я пытался взглянуть на следующие ресурсы по использованию T-SQL для планирования ночных заданий, но мне не повезло понять, как это сделать:
Ожидаемым результатом будет возможность автоматического запуска 27 sql
запросов в указанном выше каталоге для обновления таблиц в SQL Server один раз в день, предпочтительно в 6:00 по восточному поясному времени. Моя основная проблема заключается в том, что я не могу получить доступ ни к чему , кроме SQL Server Management Studio; Я не могу получить доступ к диспетчеру конфигурации, чтобы использовать такие вещи, как агент SQL Server. Поэтому, если я планирую задачу, мне нужно сделать это через SSMS.