SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » Microsoft SQL Server » вызов функции из прилинкованного сервера (надо в каждой строке при формировании выборки)
вызов функции из прилинкованного сервера [сообщение #3974] Thu, 28 December 2023 14:01 Переход к следующему сообщению
naisa в настоящее время не в онлайне  naisa
Сообщений: 1
Зарегистрирован: December 2023
Junior Member
Всем день добрый!
Буду признательна за любую подсказку.

Задача следующая:
1. есть таблица t1 на одном сервере (например SERVER_1)
2. есть скалярная функция f2 на другом сервере (например SERVER_2)
3. SERVER_2 прилинкован к SERVER_1
4. надо сформировать выборку на SERVER_1 на основе таблицы t1, в каждой строке вывести результат работы функции f2

Пока приходит в голову только использование OPENQUERY.
Но в OPENQUERY в качестве аргументов нельзя использовать переменные.


SELECT
	[cardAON]
	, ( SELECT * FROM OPENQUERY([SERVER_2], 'SELECT [abcdefCodes].[dbo].[fGetRegionByAon](9991234567)' ) ) 
FROM	
	[dbo].[t1]

если вызывать в каждой строке жёстко отфиксированный запрос, то он отлично отрабатывает, но мне надо, чтобы в каждой строке был свой динамическисформированный запрос этой функции.

вот как-то так:
SELECT
	[AON]
	, ( SELECT * FROM OPENQUERY([SERVER_2], 'SELECT [abcdefCodes].[dbo].[fGetRegionByAon]({вот тут должно браться значение [AON]})' ) ) 
FROM	
	[dbo].[t1]
Как это сделать?
Какими путями?


Re: вызов функции из прилинкованного сервера [сообщение #3981 является ответом на сообщение #3974] Thu, 28 December 2023 22:38 Переход к предыдущему сообщению
flexgen в настоящее время не в онлайне  flexgen
Сообщений: 14
Зарегистрирован: July 2022
Junior Member
Странная какая-то инфраструктура, таблица на одном сервере, функция на другом...
По поводу твоего вопросa смотри в сторону dynamic sql, sp_executesql.

[Обновления: Thu, 28 December 2023 22:38]

Известить модератора

Предыдущая тема: Бэкап отрабатывает два раза вместо одного
Следующая тема: Проблема с триггером или с условием
Переход к форуму:
  


Текущее время: Thu Nov 21 16:39:43 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00801 секунд