Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как запустить функцию из другой БД? / 14 сообщений из 14, страница 1 из 1
30.07.2018, 16:32
    #39681177
Алекс_1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Не могу в своей БД запустить скалярную функцию, которая находится в другой БД. Базы между собой залинкованы. Представления получается запускать, а функции нет.
Пишу так (где Base название другой базы):
select pole1, pole2, Base.dbo.f_fun(argument) from Base.dbo.Table
...
Рейтинг: 0 / 0
30.07.2018, 16:32
    #39681179
Сергей Викт.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Добрый день.
А код ошибки предполагается угадать?
...
Рейтинг: 0 / 0
30.07.2018, 16:34
    #39681181
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Алекс_1981Базы между собой залинкованы. Что-что базы межуд собой?
...
Рейтинг: 0 / 0
30.07.2018, 16:54
    #39681192
Алекс_1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Гавриленко Сергей АлексеевичАлекс_1981Базы между собой залинкованы. Что-что базы межуд собой? они связаны между собой Linked Servers
...
Рейтинг: 0 / 0
30.07.2018, 16:54
    #39681194
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Алекс_1981Гавриленко Сергей Алексеевичпропущено...
Что-что базы межуд собой? они связаны между собой Linked Servers
а в слове Linked Servers ничего не смущает?
...
Рейтинг: 0 / 0
30.07.2018, 16:56
    #39681195
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Алекс_1981Гавриленко Сергей Алексеевичпропущено...
Что-что базы межуд собой? они связаны между собой Linked ServersВ вашем коде нет обращения к базам на linked-серверах.
...
Рейтинг: 0 / 0
31.07.2018, 06:06
    #39681366
Алекс_1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
с утра на работе, привожу пример своего скрипта:
SELECT [Поле_1] , [Поле_2], NameServer.NameBD.dbo.f_NameFunction(Argument) FROM NameServer.NameBD.Table

Выдает ошибку:
Remote function reference 'NameServer.NameBD.dbo.f_NameFunction' is not allowed, and the column name 'NameServer' could not be or is ambiguos

А если представление вызываю из этой БД (NameServer.NameBD), то все работает. Как правильно вызвать функцию?
...
Рейтинг: 0 / 0
31.07.2018, 10:57
    #39681448
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Алекс_1981с утра на работе, привожу пример своего скрипта:
SELECT [Поле_1] , [Поле_2], NameServer.NameBD.dbo.f_NameFunction(Argument) FROM NameServer.NameBD.Table

Выдает ошибку:
Remote function reference 'NameServer.NameBD.dbo.f_NameFunction' is not allowed, and the column name 'NameServer' could not be or is ambiguosУстановите опцию rpc out у линкед сервера.
...
Рейтинг: 0 / 0
31.07.2018, 11:00
    #39681454
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Алекс_1981,
Скалярную функцию, если не ошибаюсь так не вызвать. Вариант создать локальную с запросом на внешнюю, или OPENQUERY
...
Рейтинг: 0 / 0
31.07.2018, 11:03
    #39681458
Алекс_1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
TaPaKАлекс_1981,
Скалярную функцию, если не ошибаюсь так не вызвать. Вариант создать локальную с запросом на внешнюю, или OPENQUERY
Подскажи пжл как?
...
Рейтинг: 0 / 0
31.07.2018, 11:08
    #39681460
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
а почему нельзя сделать аналогичную функцию на вашем сервере?
...
Рейтинг: 0 / 0
31.07.2018, 11:39
    #39681478
Алекс_1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
Konst_Oneа почему нельзя сделать аналогичную функцию на вашем сервере?
Параметры с того сервера подставлять в функцию на моем сервере? может быть и можно, я не пробовал.
...
Рейтинг: 0 / 0
31.07.2018, 12:08
    #39681502
Алекс_1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
TaPaKАлекс_1981,
Скалярную функцию, если не ошибаюсь так не вызвать. Вариант создать локальную с запросом на внешнюю, или OPENQUERY
попробовал OPENQUERY - получилось. спасибо за подсказку.
Мой код:
declare @sql nvarchar(max)='';
set @sql='SELECT [Поле_1] , [Поле_2], dbo.f_NameFunction(Argument) FROM Table'
set @sql='SELECT * FROM OPENQUERY([Name_Server],'+@sql+')'
exec sp_executesql @sql

Теперь весь этот запрос хочу оформить внутри View, чтоб обращаться как к таблице на своем сервере - но не получается. Представление исполняется, а сохранить не дает, пишет что нельзя использовать ключевое слово Declare

Кто подскажет, как такой скрипт сохранить во View ?
...
Рейтинг: 0 / 0
31.07.2018, 12:10
    #39681503
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запустить функцию из другой БД?
никак
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как запустить функцию из другой БД? / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]