Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SELECT в цикле в один запрос с разных Linked Server  [new]
NonameXZ
Member

Откуда:
Сообщений: 13
Здравствуйте уважаемые форумчане!

Прошу Вашего совета в следующей ситуации :

В локальной сети есть множество серверов MS SQL Server 2005, имеющих в названии экземпляра общее наименование + порядковый № (напр.MSSQL101,MSSQL102,MSSQL..N).
На каждом сервере содержится 1 одинаковая по структуре база данных, имеющая одно и то же название. Отличается только название экземпляра MSSQL.

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

Добавил в связанные серверы на отдельном экземпляре MS SQL Server 2008 требуемое множество серверов MS SQL Server 2005 с базами. Попробовал выводить организовать нижеуказанным запросом, но тут встал вопрос в ограничении количества символов в переменной. Баз достаточно большое количество, поэтому этот вариант видимо отпадает.

Подскажите пожалуйста, может быть есть еще какие-то решения?


DECLARE @Counter int,
		@Server nchar(21),
		@string nvarchar(max)
		
SET @Counter = 101
SET @Server = 'MSSQL'+CONVERT(NCHAR(3),@Counter)+ '.DB.DBO.TABLE'
SET @string = ' SELECT * FROM ' + @Server + ' WHERE CODE = 123123 '

WHILE @Counter < 300
BEGIN 
	SET @Counter = @Counter + 1
	SET @Server = 'MSSQL'+CONVERT(NCHAR(3),@Counter)+ '.DB.DBO.TABLE'
	SET @string = @string + ' UNION SELECT * FROM ' + @Server + ' WHERE CODE = 123123 '
END
	EXEC(@string)
27 мар 15, 18:05    [17442079]     Ответить | Цитировать Сообщить модератору
 Re: SELECT в цикле в один запрос с разных Linked Server  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
2 Гб символов что ли не хватило?
27 мар 15, 18:07    [17442091]     Ответить | Цитировать Сообщить модератору
 Re: SELECT в цикле в один запрос с разных Linked Server  [new]
NonameXZ
Member

Откуда:
Сообщений: 13
Гавриленко Сергей Алексеевич
2 Гб символов что ли не хватило?

К сожалению, насколько я знаю, количество символов в nvarchar 4000, а в varchar 8000.
Но этого мало, учитывая, что запрос может быть достаточно громоздким.
27 мар 15, 18:09    [17442100]     Ответить | Цитировать Сообщить модератору
 Re: SELECT в цикле в один запрос с разных Linked Server  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4974
NonameXZ
Гавриленко Сергей Алексеевич
2 Гб символов что ли не хватило?

К сожалению, насколько я знаю, количество символов в nvarchar 4000, а в varchar 8000.
Но этого мало, учитывая, что запрос может быть достаточно громоздким.


Ваши сведения устарели. В nvarchar (MAX) и varchar(MAX) можно совать 2Gb
27 мар 15, 18:12    [17442110]     Ответить | Цитировать Сообщить модератору
 Re: SELECT в цикле в один запрос с разных Linked Server  [new]
NonameXZ
Member

Откуда:
Сообщений: 13
a_voronin
NonameXZ
пропущено...

К сожалению, насколько я знаю, количество символов в nvarchar 4000, а в varchar 8000.
Но этого мало, учитывая, что запрос может быть достаточно громоздким.


Ваши сведения устарели. В nvarchar (MAX) и varchar(MAX) можно совать 2Gb


Благодарю за ответ! Сейчас попробую!
27 мар 15, 18:15    [17442121]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить