Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подскажите по openquery.  [new]
MAULER
Member

Откуда:
Сообщений: 891
Добрый день.

На MSSQL 2014 настроен Linked Server на MySQL.
В интернете нагуглил, что для селекта из таблицы MySQL на MSSQL необходимо выполнить запрос:

   select * from openquery (mysql, 'select * from proba.users')


Если запрос из MySQL будет сложнее, то использовать такую форму записи крайне не удобно. Нет подсветки ошибок в синтаксисе запроса с переносами неудобства.

Можно ли как то использовать другую форму записи?
15 ноя 17, 14:12    [20956093]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1367
MAULER,

что вы понимаете под "другой формой"?

создайте на mySQL представление с нужной вам логикой и обращайтесь к нему.
15 ноя 17, 14:15    [20956110]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Нет, нельзя.

Но вы можете сделать зеркалирование и работать со своими таблицами, у которых внешний поставщик данных.
15 ноя 17, 14:16    [20956118]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
MAULER
Member

Откуда:
Сообщений: 891
Cammomile
Нет, нельзя.

Но вы можете сделать зеркалирование и работать со своими таблицами, у которых внешний поставщик данных.


Поясните пожалуйста, что вы имеете в виду под зеркалированием?
15 ноя 17, 14:30    [20956209]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
MAULER
Поясните пожалуйста, что вы имеете в виду под зеркалированием?

понимаете, сейчас в моде (среди экспертов-Козловых) называть Always On кластером,
а репликацию миррорингом.
Cammomile, наверное, желает вам прикупить GoldenGate,
с его помощью настроить репликацию,
таким образом, будете иметь копии ваших MySQL-ных таблиц на SQL Server-е и опрашивать их как вам будет угодно
15 ноя 17, 15:05    [20956407]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
MAULER
Member

Откуда:
Сообщений: 891
Yasha123
MAULER
Поясните пожалуйста, что вы имеете в виду под зеркалированием?

понимаете, сейчас в моде (среди экспертов-Козловых) называть Always On кластером,
а репликацию миррорингом.
Cammomile, наверное, желает вам прикупить GoldenGate,
с его помощью настроить репликацию,
таким образом, будете иметь копии ваших MySQL-ных таблиц на SQL Server-е и опрашивать их как вам будет угодно


О, нет. Такого мне не нужно.
15 ноя 17, 15:17    [20956498]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
Cammomile
Member

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

типа
INSERT INTO SQLServer.DB.mirror.SomeData
SELECT FROM MySQL.DB.mirror.SomeDataSource

ну и какой то обвязки вокруг этого всего в зависимости от объемов информации, частоты запросов и всего такого.
15 ноя 17, 15:17    [20956500]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
MAULER,

камомиля вам советует умереть в распределённых транзакциях - дерзайте.

автор
Если запрос из MySQL будет сложнее, то использовать такую форму записи крайне не удобно. Нет подсветки ошибок в синтаксисе запроса с переносами неудобства.

собирайте запрос в переменную, для отладки выводите её и смотрите
15 ноя 17, 16:30    [20956953]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
MAULER,

select * from mysql.proba.users
15 ноя 17, 16:50    [20957047]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
MAULER
Нет подсветки ошибок в синтаксисе запроса с переносами неудобства.

Коллега, но ведь это логично. Вы кидаете на сервер mysql запрос с синтаксисом команд mysql, из студии SSMS, которая понимает синтаксис MSSQL. Не может ведь Вам студия проверять синтаксис и подчеркивать.
Предполагаю, что может быть теоретический плагин к SSMS, который лез бы внутрь openquery, проверял по отдельной таблице, какой тип источника для linked server - Oracle, mysql, mssql, postgresql - и далее клиентской тулзой пробовал бы оценить план выполнения запроса напрямую на нужном сервере-источнике, чтобы проверить синтаксис.
Но это что-то из разряда научной фантастики - то есть можно, но зачем...
15 ноя 17, 16:54    [20957066]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7762
Andy_OLAP,

автор
Можно ли как то использовать другую форму записи?

Автор не понимает, что пишет в этом запросе на двух разных языках. И работает с чужеродным источником данных, по всей видимости, тоже не понимает.
15 ноя 17, 17:25    [20957197]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
MAULER
Member

Откуда:
Сообщений: 891
Владислав Колосов,

Автор решил подключить MySQL Workbench и отлаживать запросы там.
16 ноя 17, 09:23    [20958656]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по openquery.  [new]
Cammomile
Member

Откуда:
Сообщений: 1214
Автору бы еще понять, что такого рода задачи правильно решать не отлаживанием запросов, а построением инфраструктуры.

Прямым текстом поясняю. Если запрос к связаному серверу по сложности(форме) отличается от

SELECT ... FROM LinkedServer.DB.SourceTable 


или

 EXEC LinkedServer.DB.DataProvider 


У вас серьезные проблемы в проектировании решения.
16 ноя 17, 10:20    [20958877]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить