Перебирайте базы данных на сервере и обновляйте данные - PullRequest
6 голосов
/ 08 июля 2010

У меня есть сервер с несколькими базами данных. Мне нужно пройти через эти базы данных и изменить значение в одной записи, в одной таблице, в каждой базе данных. Как это можно сделать?

Ответы [ 3 ]

12 голосов
/ 08 июля 2010
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999  '
8 голосов
/ 08 июля 2010

Вы можете использовать динамический 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)
3 голосов
/ 08 июля 2010

Существует недокументированная хранимая процедура sp_MSForEachDB, которая будет выполнять SQL для каждой базы данных.

EXEC sp_msforeachdb 'PRINT ''?'''

?это имя базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...