Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема два разных SQL-сервера (число прочтений - 4080 )
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
два разных SQL-сервера
20. Декабря 2006 :: 06:40
Печать  
Как в одном запросе использовать два разных SQL-сервера,
например
select  * into server1.dbo.tmpdb.tab1 from server2.dbo.tab1

в объекте ODBCRecordset можно установить соединение либо с одним сервером либо с другим,  и как быть в этом случае?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #1 - 20. Декабря 2006 :: 09:25
Печать  
См. описание sp_addlinkedserver
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #2 - 20. Декабря 2006 :: 09:33
Печать  
berezdetsky писал(а) 20. Декабря 2006 :: 09:25:
См. описание sp_addlinkedserver


делаю
EXEC    sp_addlinkedserver  
  @server = 'interserver',
  @provider = 'SQLOLEDB',
  @provstr = 'DRIVER={SQL Server};SERVER=interserver;UID=sa;PWD='''

сервер связывается
а select  c одного сервера на другой не работает

Could not create an instance of OLE DB provider 'SQLOLEDB'.
  
Наверх
ICQ  
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #3 - 20. Декабря 2006 :: 09:39
Печать  
aou1c писал(а) 20. Декабря 2006 :: 09:33:
berezdetsky писал(а) 20. Декабря 2006 :: 09:25:
См. описание sp_addlinkedserver


делаю
EXEC    sp_addlinkedserver  
  @server = 'interserver',
  @provider = 'SQLOLEDB',
  @provstr = 'DRIVER={SQL Server};SERVER=interserver;UID=sa;PWD='''

сервер связывается
а select  c одного сервера на другой не работает

Could not create an instance of OLE DB provider 'SQLOLEDB'.


что я делаю неправильно?
киньте кто-нить в меня примерчиком
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #4 - 20. Декабря 2006 :: 11:04
Печать  
Если подключаться к SQL Server, достаточно указать его имя.
Например, такой
Код
Выбрать все
exec sp_addlinkedserver 'servername'

go

select count(*)
from servername.dbname.dbo._1sjourn 


у меня работает.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #5 - 28. Декабря 2006 :: 08:55
Печать  
aou1c писал(а) 20. Декабря 2006 :: 06:40:

select  * into server1.dbo.tmpdb.tab1 from server2.dbo.tab1


Не работает такая конструкция.
Select...into работает максимум с трехзвенной адресацией таблиц.

Т.е. можно только select....into dbo.base1.table2 from server3.dbo.base4.table5
либо select....into #table2 from server3.dbo.base4.table5

т.е. в любом случае база, в которую делается select....into должна быть на том сервере, с которым коннектимся
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
aou1c
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 183
Местоположение: Екатеринбург
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #6 - 28. Декабря 2006 :: 15:10
Печать  
Quan писал(а) 28. Декабря 2006 :: 08:55:
aou1c писал(а) 20. Декабря 2006 :: 06:40:

select  * into server1.dbo.tmpdb.tab1 from server2.dbo.tab1


Не работает такая конструкция.
Select...into работает максимум с трехзвенной адресацией таблиц.

Т.е. можно только select....into dbo.base1.table2 from server3.dbo.base4.table5
либо select....into #table2 from server3.dbo.base4.table5

т.е. в любом случае база, в которую делается select....into должна быть на том сервере, с которым коннектимся


Спасибо, я уже понял что к прилинкованной базе можно только select делать.
Не проходит  into, update, insert.

У меня одновременно с этим еще проблема была:
сервер линковался вроде как, а при попытке selecta выдавал
7302, Level 16, State 1 Could not create an instance of OLE DB provider
Сделал как написано по ссылке http://support.microsoft.com/default.aspx?scid=kb;en-us;196292
Щас жду когда админ перезагрузит сервер

  
Наверх
ICQ  
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: два разных SQL-сервера
Ответ #7 - 28. Декабря 2006 :: 16:48
Печать  
aou1c писал(а) 28. Декабря 2006 :: 15:10:
Спасибо, я уже понял что к прилинкованной базе можно только select делать.
Не проходит  into, update, insert.


Не проходит только insert...into. Всякие update и delete, а также insert в существующую таблицу идут на ура.
Проверь свойства линкнутого сервака, может там соответствующие птички не стоят?
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать