powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Linked servers и table variables
20 сообщений из 20, страница 1 из 1
Linked servers и table variables
    #39659517
dbms_bdsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потребовалось вызвать процедуру на удаленном сервере, которой скормить табличную переменную.

Проблема в том что как оказалось прямо это делать нельзя
MSSQLTable-valued parameters are not allowed in remote calls between servers.

Как нельзя и использовать xml:
MSSQLXml data type is not supported as a parameter to remote calls.

Хранимку на удаленном сервере можно править как угодно.
Вижу 2 способа решения

1) Хитропопый динамический SQL:
Код: sql
1.
2.
3.
4.
5.
6.
7.
DECLARE @SQL nvarchar(4000)
SET @SQL = '
DECLARE @tbl tbl_type
INSERT INTO @tbl  (A1, A2) VALUES (5,6)
EXEC sp_Test 
        @tbl = @tbl '
EXEC [REMOTEDB].[DB]..sp_executesql @stmt = @SQL


При этом придется вручную клеить в строку заполнение таблицы и все такое


2) преобразование table -> xml -> nvarchar -> xml -> table
Как то выглядит пустой тратой ресурсом на преобразования

Есть ли еще способы?
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659614
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Заполняем временную таблицу на удаленном сервере
select * into [REMOTEDB].[DB]..#temptable from ...

2. Вызываем процедуру, которая ее обрабатывает.

EXEC [REMOTEDB].[DB]..
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659618
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_bdsm,
автор2) преобразование table -> xml -> nvarchar -> xml -> table
Как то выглядит пустой тратой ресурсом на преобразования
обчная практика или заполняйте таблицу прямо на удалённом сервере
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659638
dbms_bdsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор1. Заполняем временную таблицу на удаленном сервере
select * into [REMOTEDB].[DB]..#temptable from ...


А когда в таком случае удалятся данные из временной таблицы?
Я дергаю удаленную сторку из локальной
Удаление будет на выходе из локальной?
Не вызовет ли это начало распределенной транзакции?
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659640
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_bdsmА когда в таком случае удалятся данные из временной таблицы?Никогда. Ибо удалять нечего, т.к. создать временную таблицу таким способом невозможно.
Более того если таки создать удаленно временную таблицу явно, ее все равно не получиться использовать.
Она самоудалится сразу после завершения инструкции, ее создавшей. Ну или будет существовать некоторое время, пока соединение живет в пуле.
Но попасть следующей инструкцией на это соединение из пула - все равно что тыкать пальцем в небо.

Используйте xml. Это самый простой способ.
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659643
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot invm]dbms_bdsmОна самоудалится сразу после завершения инструкции, ее создавшей. Ну или будет существовать некоторое время, пока соединение живет в пуле.
Но попасть следующей инструкцией на это соединение из пула - все равно что тыкать пальцем в небо.


Пакет инструкций T-SQL? Не, не слыхал.
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659649
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222Пакет инструкций T-SQL? Не, не слыхал.Начался очередной месячник идиотских советов от нашей "гуры"

Если ты сформируешь пакет, то получишь аналогичный опубликованному в стартовом посте. Только в нем, вместо табличного типа будет фигурировать временная таблица.
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659658
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot invm]dbms_bdsmБолее того если таки создать удаленно временную таблицу явно, ее все равно не получиться использовать.
Она самоудалится сразу после завершения инструкции, ее создавшей. Ну или будет существовать некоторое время, пока соединение живет в пуле.


создать можно, лучше создавать ##-таблицу - её видно всем
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659669
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradсоздать можнМожно. Нельзя использовать вне рамок пакета, где создали.
komradлучше создавать ##-таблицуКаждый раз с другим именем? Или писать инфраструктуру совместного использования общего ресурса?
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659674
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmkomradсоздать можнМожно. Нельзя использовать вне рамок пакета, где создали.
komradлучше создавать ##-таблицуКаждый раз с другим именем? Или писать инфраструктуру совместного использования общего ресурса?
безусловно, есть много "но", однако как вариант такая возможность существует
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659695
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradбезусловно, есть много "но", однако как вариант такая возможность существуетИх слишком много, этих "но", чтобы рассматривать этот вариант как альтернативу более простым.
Имхо, если уж рассматривать передачу параметров через таблицу, то гораздо проще использовать постоянную.
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659711
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invmkomradбезусловно, есть много "но", однако как вариант такая возможность существуетИх слишком много, этих "но", чтобы рассматривать этот вариант как альтернативу более простым.
Имхо, если уж рассматривать передачу параметров через таблицу, то гораздо проще использовать постоянную.

не настаиваю, Вам видней, вероятно
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659713
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы начинаете думат об использовании глобальной временной таблици - значить что-то вы делаете не так
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659716
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKЕсли вы начинаете думат об использовании глобальной временной таблици - значить что-то вы делаете не так
иногда бывает выгодней пренебречь канонами, кошерностью, фэншуем и т.п. вещами и сделать чтобы работало здесь и сейчас, чем переконфигурировать н-ное кол-во серверов и изменить внутренние орг-процессы ради одного-двух запусков в месяц

но так, лирическое отступление )
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659717
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradTaPaKЕсли вы начинаете думат об использовании глобальной временной таблици - значить что-то вы делаете не так
иногда бывает выгодней пренебречь канонами, кошерностью, фэншуем и т.п. вещами и сделать чтобы работало здесь и сейчас, чем переконфигурировать н-ное кол-во серверов и изменить внутренние орг-процессы ради одного-двух запусков в месяц

но так, лирическое отступление )
это бред, а не "лирическое отступление "
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659721
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKkomradпропущено...

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

но так, лирическое отступление )
это бред, а не "лирическое отступление "

категоричность суждений обычно намекает на узость кругозора, либо недалекость автора
ничего личного, кстати, жизненное наблюдение
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659729
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradиногда бывает выгодней пренебречь канонами, кошерностью, фэншуем и т.п. вещами и сделать чтобы работало здесь и сейчасБезусловно.
Но здесь ключевое - "чтобы работало".
К сожалению, для обеспечения надежной работы через глобальные временные таблицы, потребуются дополнительные неочевидные "приседания".
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659732
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradTaPaKпропущено...

это бред, а не "лирическое отступление "

категоричность суждений обычно намекает на узость кругозора, либо недалекость автора
ничего личного, кстати, жизненное наблюдение
о какой переконцигурации идёт речь если вопрос между временной/глобальной/постоянной/xml таблице для работы процедуры?
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659738
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKkomradпропущено...


категоричность суждений обычно намекает на узость кругозора, либо недалекость автора
ничего личного, кстати, жизненное наблюдение
о какой переконцигурации идёт речь если вопрос между временной/глобальной/постоянной/xml таблице для работы процедуры?
это зависит от конкретного случая, поэтому я начал фразу с "иногда бывает"

из моего личного опыта: пришлось столкнуться с отсутствием SPN-ов, kerberos и delegation + DTC y большого кол-ва SQL серверов при решении одной практической задачи, а именно отчета (security), запускаемого 1-2 раза в месяц в отношении произвольного сиквела в сети

поэтому, пришлось изворачиваться по месту и применять неочевидные с первого взгляда подходы

так что, если что-то выглядит бредом, то не всегда таковым является по факту
...
Рейтинг: 0 / 0
Linked servers и table variables
    #39659740
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komradTaPaKпропущено...

о какой переконцигурации идёт речь если вопрос между временной/глобальной/постоянной/xml таблице для работы процедуры?
это зависит от конкретного случая, поэтому я начал фразу с "иногда бывает"

из моего личного опыта: пришлось столкнуться с отсутствием SPN-ов, kerberos и delegation + DTC y большого кол-ва SQL серверов при решении одной практической задачи, а именно отчета (security), запускаемого 1-2 раза в месяц в отношении произвольного сиквела в сети

поэтому, пришлось изворачиваться по месту и применять неочевидные с первого взгляда подходы

так что, если что-то выглядит бредом, то не всегда таковым является по факту
А! Это те мифические "иногда" которые никак не относятся к теме, ну так да, иногда идёт дождь
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Linked servers и table variables
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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