Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. SQL 2012 Есть куча (20) филиалов (SQL 2012) откуда я тяну инфу через линк-сервер SET @FSql = ' SELECT * INTO ##Tmp_Prom1 FROM OPENQUERY ( [@AServerName], " запрос 1 UNION ALL запрос 2 логика сложная и когда добавил в подзапросы еще по 4 жойна - вылез за 8000 понятно что можно разбить на 2 но там логика почти одинаковая и НЕ хотелось бы бить ее искуственно Есть ли спобос обойти по дургому советы про EXECUTE AT я читал НО EXECUTE ( 'SELECT * INTO ##ZZ FROM csc..prix where id = 0') AT [lINK-SERVER] отрабывтаыве безж ошибок но таблицы ##ZZ нет ни там ни там а мне надо эту таблицу получить к себе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2019, 17:30 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
Гулин Федорлогика сложная и когда добавил в подзапросы еще по 4 жойна - вылез за 8000 понятно что можно разбить на 2 но там логика почти одинаковая и НЕ хотелось бы бить ее искуственно Есть ли спобос обойти по дургомуЧто "обойти", проблема то в чём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2019, 18:32 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
Гулин Федор, where id = 0; select * from ##zz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2019, 18:34 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
Гулин Федорвылез за 8000varchar(max) уже отменили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2019, 18:44 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvgГулин Федорлогика сложная и когда добавил в подзапросы еще по 4 жойна - вылез за 8000 понятно что можно разбить на 2 но там логика почти одинаковая и НЕ хотелось бы бить ее искуственно Есть ли спобос обойти по дургомуЧто "обойти", проблема то в чём? https://social.msdn.microsoft.com/Forums/sqlserver/en-US/031d3a2b-9095-4622-9ef5-7ac0f89e6f13/openquery-parameter-length-limitation-of-8000-characters?forum=transactsql проблема вот - не может запрос быть больше 8000 символов в openquery зы пока по простому пути пошел - побил на 2 запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2019, 09:14 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
КритикГулин Федор, where id = 0; select * from ##zz СПАСИБО да это работатет - но мне надо загнать результат в ##Tmp таблицу у себя Код: sql 1. INSERT INTO #Tmp EXECUTE(@FSql) дожно прокатить - но я спец. уходил от этой конструкции потому что резалтсет меняется очень часто ( поля добавлюятся-убираются ) можно ли загнать таким образом результат через Select * into from ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2019, 09:21 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
Гулин ФедорКритикГулин Федор, where id = 0; select * from ##zz СПАСИБО да это работатет - но мне надо загнать результат в ##Tmp таблицу у себя Код: sql 1. INSERT INTO #Tmp EXECUTE(@FSql) дожно прокатить - но я спец. уходил от этой конструкции потому что резалтсет меняется очень часто ( поля добавлюятся-убираются ) можно ли загнать таким образом результат через Select * into from В принципе можно создать пустую таблицу командой Код: sql 1. При этом во внутренний запрос добавить условие WHERE 1=0, и не делать условия для джойнов. Тогда запрос поместится в 8000 символов. А потом уже вставить данные командой: Код: sql 1. , где в @Sql будет уже полный запрос ,со всеми условиями PS Но, безусловно, самое правильное - изменить архитектурный подход, потому что работать с неизвестными полями невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2019, 09:55 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
alexeyvg, СПС - да то воркараунд но тогда уже проще просто CREATE TABLE # в одном запросе пока < 5000 - попутно возник вопрос по EXECUTE ( '') AT [lINK-SERVER] Код: sql 1. есть часть ETL написанная обратным образом - все с филиалов грузится через линк-сервер на главный правильно ли я понимаю что вызывая циклом как выше - эти SP будут выполянться на тех серверах (я в принципе это вижу ) я хочу зашедулить это на своем ETL сервере ( а не на серверах филиалов - как сейчас ) вопрос - в доп. нагрузке - я понимаю что она Мала - только передать запрос на выполнение туда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2019, 17:51 |
|
||
|
SQL 2012 link-server запрос > 8000 знаков вытянуть таблицу
|
|||
|---|---|---|---|
|
#18+
Гулин Федорно тогда уже проще просто CREATE TABLE #Дык вы же не знаете поля таблицы? Если можно CREATE TABLE, тогда лучше да, сделать таблицу, а потом в неё инсёрт. Гулин Федорвызывая циклом как выше - эти SP будут выполянться на тех серверахДа. Гулин Федоря хочу зашедулить это на своем ETL сервере ( а не на серверах филиалов - как сейчас ) вопрос - в доп. нагрузке - я понимаю что она Мала - только передать запрос на выполнение тудаМожете так, можете напрямую коннектиться из ETL на серверы филиалов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2019, 19:23 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1687300]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 381ms |

| 0 / 0 |
