Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов ХП через linked server и сохранение результатов / 25 сообщений из 26, страница 1 из 2
19.06.2018, 15:28
    #39662529
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Уважаемый форум!

Искал и не нашел решение для небольшой заминки: есть linked server Serv1 на нем база Base1, в этой базе есть ХП SP1, которая возвращает набор записей. Вопрос: как на сервере Serv2 выполнить ХП SP1 на linked server и сохранить результаты работы в таблицу?

Спасибо!
...
Рейтинг: 0 / 0
19.06.2018, 15:30
    #39662532
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
дивно в Гондурасе то гугел забнен :) ШО не одно решения не нашлось ?
...
Рейтинг: 0 / 0
19.06.2018, 15:32
    #39662533
Rankatan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Берешь и выполняешь exec [linkname].[base].[dbo].[sp], только перед этим в настройках сервера даешь права на выполнение процедур. По умолчанию выключено.
...
Рейтинг: 0 / 0
19.06.2018, 15:33
    #39662534
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Maxxдивно в Гондурасе то гугел забнен :) ШО не одно решения не нашлось ?
Точно,забанен
...
Рейтинг: 0 / 0
19.06.2018, 16:00
    #39662542
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Maxx, если нечего сказать, предлагаю тебе отвалить. Спасибо заранее.
...
Рейтинг: 0 / 0
19.06.2018, 16:01
    #39662543
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Rankatan, так и делаю, но че-то не совсем пока понимаю, как возвращаемые результаты загнать во временную таблицу. :(

Код: sql
1.
EXEC sp_executeSQL @stmt = 'EXEC [Serv1].[Base1].[dbo].SP1' 
...
Рейтинг: 0 / 0
19.06.2018, 16:04
    #39662545
Rankatan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
insert into tbl()
EXEC [Serv1].[Base1].[dbo].SP1
...
Рейтинг: 0 / 0
19.06.2018, 16:06
    #39662546
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
IFK,

или INSERT INTO .. EXEC .. и получаете DTC + общую забагованность конструкции или SELECT INTO FROM OPENQUERY(EXEC )
...
Рейтинг: 0 / 0
19.06.2018, 16:33
    #39662555
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
TaPaKIFK,

или INSERT INTO .. EXEC .. и получаете DTC + общую забагованность конструкции .. а можно поподробнее про это?
...
Рейтинг: 0 / 0
20.06.2018, 12:53
    #39662977
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
IFK,

сервер не может знать - что вернется из процедуры. количество наборов данных и их состав. Поэтому не используйте процедуры для получения данных, используйте функции или обращения к таблицам. При использовании конструкции INSERT ... EXEC через связанный сервер, кроме всего прочего, получите распределенную транзакцию. Надо уметь ее готовить и не каждая корпоративная сеть разрешит такое.
...
Рейтинг: 0 / 0
20.06.2018, 13:28
    #39663007
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Владислав Колосов, спасибо за ответ.

Может тогда посоветуете альтернативное решение для задачи:
- необходимо организовать передачу данных между двумя базами данных, расположенных на разных сиквел-серверах. Задача минимум - получить данные из базы-источника данных
- доступ к базе-источнику данных возможен только через ХП, которая принимает номер готового запроса, сохраненного в этой базе и возвращает результирующий набор записей
- прямой доступ к таблицам или запросам базы-источника данных невозможен

Спасибо!
...
Рейтинг: 0 / 0
20.06.2018, 13:53
    #39663024
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
IFK,

Используйте Integration Services, создаете два подключения источник и приемник, на источнике выполняете процедуру и так далее. Да и вставка будет намного быстрее.
...
Рейтинг: 0 / 0
20.06.2018, 13:58
    #39663030
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Владислав Колосов, хм, с источником не могу делать ничего, в том числе создавать и выполнять ХП.
...
Рейтинг: 0 / 0
20.06.2018, 14:49
    #39663069
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
IFK,

ничего не путаете?

авторкак на сервере Serv2 выполнить ХП SP1 на linked server
Serv1 и есть источник.
При использовании SSIS потребуется синтаксис EXEC Proc WITH RESULT SETS.
...
Рейтинг: 0 / 0
20.06.2018, 15:17
    #39663104
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Владислав Колосов, пардон, это, наверное, путаница в терминах. Я имел в ввиду, что Serv2 - источник ДАННЫХ. А что Вы имели в виду под источником?
...
Рейтинг: 0 / 0
20.06.2018, 16:01
    #39663148
IFK
IFK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Пардон. Игнор последнего поста. Владислав прав - Serv1 источник данных.
...
Рейтинг: 0 / 0
21.06.2018, 02:40
    #39663340
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
TaPaKIFK,

или INSERT INTO .. EXEC .. и получаете DTC + общую забагованность конструкции или SELECT INTO FROM OPENQUERY(EXEC )
А в чем тут забагованность?

При использовании Linked server почти (можно ведь и отключить DTC для этого линка) всегда DTC идет паравозом.

Владислав Колосов,
Это при каком раскладе "сеть" захочет запретить DTC между двумя SQL серверами?

Конечно, любители извращений могут и SSIS пакет наваять для такой простой задачи (если конечно вы не миллион записей таскаете с место на место). Но тут уже кто как хочет создает себе головняк.
...
Рейтинг: 0 / 0
21.06.2018, 08:46
    #39663373
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Idol_111,

авторА в чем тут забагованность?

Речь про INSERT INTO EXEC которой лучше вообще не пользоваться
...
Рейтинг: 0 / 0
21.06.2018, 17:35
    #39663752
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Idol_111,

авторЭто при каком раскладе "сеть" захочет запретить DTC между двумя SQL серверами?

при очень простом - открыты 80, 110, 23 и 1433 порты. Всё остальное закрыто требования безопасности.
...
Рейтинг: 0 / 0
22.06.2018, 02:22
    #39663865
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Владислав КолосовIdol_111,

авторЭто при каком раскладе "сеть" захочет запретить DTC между двумя SQL серверами?

при очень простом - открыты 80, 110, 23 и 1433 порты. Всё остальное закрыто требования безопасности.
включаете Distributed Transaction Coordinator (TCP-In) в файрволе и все работает.
...
Рейтинг: 0 / 0
22.06.2018, 02:24
    #39663866
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
TaPaKIdol_111,

авторА в чем тут забагованность?

Речь про INSERT INTO EXEC которой лучше вообще не пользоваться
если сложно описать, то хоть ссылку дайте почитать. А то я прям заинтригован :).
...
Рейтинг: 0 / 0
22.06.2018, 09:04
    #39663925
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Idol_111TaPaKIdol_111,

пропущено...


Речь про INSERT INTO EXEC которой лучше вообще не пользоваться
если сложно описать, то хоть ссылку дайте почитать. А то я прям заинтригован :).
для любителей новых дверей

из последних на sql 2014+

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE dbo.tmp  (Id INT IDENTITY(1,1) ,Code VARCHAR(1))
INSERT INTO  dbo.tmp  (Code) VALUES('A')
INSERT INTO  dbo.tmp  (Id,Code) EXEC (N'SELECT 1,1')
INSERT INTO  dbo.tmp  (Code) VALUES('X')
SELECT * FROM dbo.tmp

DROP TABLE tmp


ну и дальше в гугл
bad+practice+insert+into+exec
...
Рейтинг: 0 / 0
22.06.2018, 09:26
    #39663931
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
вот ещё весёлый
https://dba.stackexchange.com/questions/155684/bug-in-database-scoped-configurations

но мы же не отговариваем вас скакать по граблям, скачите :)
...
Рейтинг: 0 / 0
25.06.2018, 01:29
    #39664985
Idol_111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
TaPaK,

спасибо за объяснения.
У любого метода есть ограничения, их просто нужно знать и применять метод соответственно.
...
Рейтинг: 0 / 0
25.06.2018, 13:03
    #39665293
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов ХП через linked server и сохранение результатов
Idol_111Владислав КолосовIdol_111,

пропущено...


при очень простом - открыты 80, 110, 23 и 1433 порты. Всё остальное закрыто требования безопасности.
включаете Distributed Transaction Coordinator (TCP-In) в файрволе и все работает.

То есть вы понятия не имеете какие требования к настройке DTC и как они могут взаимодействовать с корпоративной политикой безопасности.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вызов ХП через linked server и сохранение результатов / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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