Использование не хранимых процедур в скриптах T-SQL Microsoft SQL
Хочу повторяющиеся куски кода вынести в процедуры, даже в CMD файлах такое возможно.
А как это сделать в T-SQL?
А как это сделать в T-SQL?
---- BACKUP -------------------
SET @DatabaseName = N'LA';
SET @Backup1 = N'\\la2\backups\' + @DatabaseName + '_diff.bak'
BACKUP DATABASE @DatabaseName
TO DISK = @Backup1
WITH DIFFERENTIAL, INIT, FORMAT, STATS = 1, CHECKSUM
---- BACKUP -------------------
SET @DatabaseName = N'MA';
SET @Backup1 = N'\\la2\backups\' + @DatabaseName + '_diff.bak'
BACKUP DATABASE @DatabaseName
TO DISK = @Backup1
WITH DIFFERENTIAL, INIT, FORMAT, STATS = 1, CHECKSUM
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Задано 14 лет, 4 месяца назад
Просмотрено 10 тыс. раз
(10)
а, вот где собака покопалась...
то ли я неправильно донес смысл задачи, то ли ее не так поняли.
Уточню - мне не надо получать список баз. я знаю их названия.
Мне нужно 4 раза (4 базы) вызвать одно и то же действие, по разу для каждой базы. Для этого логично было бы использовать функцию. Но как ее объявить чисто для скрипта, чтобы не хранилась в базе? Или плюнуть и сохранить в базе?
а, вот где собака покопалась...
то ли я неправильно донес смысл задачи, то ли ее не так поняли.
Уточню - мне не надо получать список баз. я знаю их названия.
Мне нужно 4 раза (4 базы) вызвать одно и то же действие, по разу для каждой базы. Для этого логично было бы использовать функцию. Но как ее объявить чисто для скрипта, чтобы не хранилась в базе? Или плюнуть и сохранить в базе?
(11) Никто не мешает просто по списку значений проехать
DECLARE @DatabaseName NVARCHAR(255);
DECLARE @Backup1 NVARCHAR(255);
DECLARE cursor_db CURSOR
FOR SEL ECT * FROM (VALUES (N'LA'),(N'MA')) AS t(a)
OPEN cursor_db;
FETCH NEXT FROM cursor_db INTO
@DatabaseName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @Backup1 = N'\\la2\backups\' + @DatabaseName + '_diff.bak'
BACKUP DATABASE @DatabaseName
TO DISK = @Backup1
WITH DIFFERENTIAL, INIT, FORMAT, STATS = 1, CHECKSUM
FETCH NEXT FR OM cursor_db INTO
@DatabaseName;
END;
CLOSE cursor_db;
DEALLOCATE cursor_db;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот