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

Откуда: Tashkent, Uzbekistan
Сообщений: 2845
Добрый день!

Чтобы получить данные из другой СУБД сначала создаём линкованный сервер, а потом с помощью OPENQUERY получаем нужные данные. Но мне не нужно получать данные, а отправить некий SQL запрос, который совершает некие действия.
Например, удалить данные в таблице, выключить триггер, запускать хранимую процедуру и т.д.
Т.е. мне нужно что-то наподобие OPENQUERY, но только не возвращающий набор записей, а только отправляющий сам текст запроса.
Как это сделать?

Спасибо заранее.
27 июл 16, 12:19    [19461335]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
TaPaK
Member

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

ровно в соседней теме туча вариантов. sp_executesql
27 июл 16, 12:21    [19461343]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
studieren
Member

Откуда: Tashkent, Uzbekistan
Сообщений: 2845
TaPaK,

Как отправить простейший запрос на удаление данных для ORACLE?
Допустим у меня есть линкед сервер "ORACLE", а там некая таблица "TEST.TABLE1".
Не могу придумать подходящий текст для sp_executesql.
Хотя бы один примерчик можете показать?
27 июл 16, 12:25    [19461373]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
Владислав Колосов
Member

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

OPENQUERY и использовать. Пишите в текст что хотите.
27 июл 16, 12:26    [19461376]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
TaPaK
Member

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

гугл штука запрещённая и опасная? вот например многа букв http://sqlmag.com/sql-server/sql-server-and-oracle-making-connection
27 июл 16, 12:31    [19461429]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8316
нет, вроде бы не так :)
27 июл 16, 12:32    [19461431]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
studieren
Member

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

OPENQUERY и использовать. Пишите в текст что хотите.

Ну так OPENQUERY возвращает ошибку, т.к. я из ORACLE не получаю данные.
Что делать и как быть?

Или как-то по хитрому надо написать OPENQUERY? Примерчик не покажите?
27 июл 16, 12:32    [19461437]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
TaPaK
Member

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

msdn тоже запрещён? тяжело вам https://msdn.microsoft.com/en-us/library/ms188427.aspx
27 июл 16, 12:34    [19461460]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8316
delete top (1) from openquery(linked, ' select * from table1 ');
27 июл 16, 12:35    [19461465]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
studieren
Member

Откуда: Tashkent, Uzbekistan
Сообщений: 2845
TaPaK
studieren,

гугл штука запрещённая и опасная? вот например многа букв http://sqlmag.com/sql-server/sql-server-and-oracle-making-connection

А так разве есть решение? Читаю, но что-то не могу найти ответ на мой вопрос.
27 июл 16, 12:35    [19461466]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
Владислав Колосов
Member

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

подключайтесь к серверу консолью и работайте.
27 июл 16, 12:38    [19461494]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
studieren
Member

Откуда: Tashkent, Uzbekistan
Сообщений: 2845
Владислав Колосов
delete top (1) from openquery(linked, ' select * from table1 ');

Спасибо за наводку ()не знал что можно удалить вот таким образом.
О.К.
Но есть ещё множество других запросов. Например, как выключить триггер в ORACLE перед там как я туда буду экспортировать млн. записей?
Т.е. кроме как OPENQUERY совсем ни как?
27 июл 16, 12:38    [19461495]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
TaPaK
Member

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

гугл, что ты делаееешьь https://www.google.com.ua/search?q=Disable Trigger on Remote Server&oq=Disable Trigger on Remote Server&aqs=chrome..69i57.2895j0j4&sourceid=chrome&ie=UTF-8
27 июл 16, 12:41    [19461520]     Ответить | Цитировать Сообщить модератору
 Re: Как отправить запрос к другой СУБД?  [new]
Владислав Колосов
Member

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

если вы об экспорте, то делайте это при помощи SSIS.
Там есть и задача выполнения запроса (отключите триггеры - с какими последствиями?), и поток передачи данных. Программирование мышью :)
27 июл 16, 12:45    [19461550]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить