На работе у нас есть несколько баз данных, с которыми нам нужно выполнить те же операции. Я хотел бы написать 1 SP, который будет циклически выполнять операции и установить базу данных в начале цикла (пример для подражания). Я попытался sp_executesql ('USE' + @db_id), но это только устанавливает DB для области действия этой хранимой процедуры. На самом деле я не хочу зацикливаться на жестко закодированных именах баз данных, потому что нам нужно делать похожие вещи во многих разных местах, и сложно вспомнить, где что-то нужно изменить, если мы добавим другую БД.
Любые мысли>
Пример:
ОБЪЯВИТЬ zdb_loop CURSOR FAST_FORWARD FOR
ВЫБЕРИТЕ отдельный db_id из порядка DBS по db_id
OPEN zdb_loop
ПОЛУЧИТЬ СЛЕДУЮЩУЮ ОТ zdb_loop INTO @ db_id
WHILE @@ FETCH_STATUS = 0
НАЧАТЬ
USE @ db_id
--Do stuff against 3 or 4 different DBs
FETCH NEXT FROM zdb_loop INTO @db_id
END
ЗАКРЫТЬ zdb_loop
DEALLOCATE zdb_loop