У меня есть сервер с несколькими базами данных. Я должен циклично выполниться через эти базы данных и изменить значение в одной записи, в одной таблице, в каждой базе данных. Как это может быть сделано?
Вы можете использовать динамический SQL:
declare @query varchar(max)
set @query = ''
select @query = @query + 'UPDATE ' + name +
'.dbo.YourTable set value = 1 where id = 2; '
from master.sys.databases
where name <> 'master'
exec (@query)
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999 '
Существует недокументированная хранимая процедура sp_MSForEachDB, которая выполняет SQL для каждой базы данных.
EXEC sp_msforeachdb 'PRINT ''?'''
Значок? это имя базы данных.