Я пытаюсь определить полное предложение SELECT в USE для списка баз данных.
Я пытаюсь выполнить запрос по всем базам данных на сервере, чтобы получить список всех доступных функций. Существует около 80 баз данных, поэтому я собираюсь использовать таблицу переменных, чтобы передать список баз данных в предложение USE, чтобы иметь возможность переключаться между каждой базой данных и выполнять простой запрос для перечисления там функций через цикл WHILE.
Можно ли сделать что-то вроде
USE
(SELECT dBname
From dBList
where rowID=@currentRow)
GO
Если нет, то предлагаете ли вы сделать это менее болезненно, чем запрашивать базы данных по очереди?
Это то, что я сделал в MS SQL Server 2014, но не радостно,
declare @dBaseList Table
( RowID int not null primary key identity(1,1), dBname varchar(100)
)
declare @SeldBname varchar(100)
declare @rowsdBaseList int
declare @currentRow int
insert into @dBaseList (dBname)
SELECT name FROM sys.databases
set @rowsdBaseList=@@ROWCOUNT
set @currentRow=0
while @currentRow<@rowsdBaseList
begin
set @currentRow+=1
use
(select @SeldBname=dBname
from @dBaseList
where RowID=@currentRow)
Go
select * from sys.objects where type='FN'
end
Это должно выглядеть примерно так,
USE
dBname1
GO
select * from sys.objects where type='FN'
USE
dBname2
GO
select * from sys.objects where type='FN'
USE
dBname3
GO
select * from sys.objects where type='FN'
.
.
.
.
.