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

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

У меня есть рабочий и тестовый сервер.
На рабочем сервере есть прилинкованная база MS SQL, на тестовом такой линк отсутствует.

В хранимых процедурах есть код который ссылается на данные из прилинкованного сервера.
При переносе базы с рабочего на тестовый сервер, при выполнении таких процедур происходит ошибка: "Could not find server 'REMOTE_SERVER' in sys.servers ...'

Я думал что изменив код на следующий, мне удастся запускать хранимые процедуры и на рабочем и тестовом сервере
	if exists(select * from sys.servers where is_linked = 1 and name='REMOTE_SERVER')
			<Запрос с участием REMOTE_SERVER> 
	else
			<Запрос без участия REMOTE_SERVER> 

Но не получилось :(

Как мене модифицировать код, что бы я его мог исполнять как на рабочем так тестовом сервере (пожалуйста, не предологайте создать линкованный сервер на тестовом)?
20 янв 17, 11:08    [20126085]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Lisichkin
Как мене модифицировать код, что бы я его мог исполнять как на рабочем так тестовом сервере (пожалуйста, не предологайте создать линкованный сервер на тестовом)?

Только динамический SQL :-(

А почему бы действительно не сделать на тесте лнкед-сервер?
Тем более это будет правильно в смысле тождественности кода на тесте и продакшене
А то у вас получится "тут тестируем, тут рыбу заворачиваем"..
20 янв 17, 11:13    [20126124]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Lisichkin
Member

Откуда:
Сообщений: 487
alexeyvg
Если я создам на тестовом сервере линк на <REMOTE_SERVER>, то при тестировании данные на <REMOTE_SERVER> могут быть изменены...что нельзя :\
20 янв 17, 11:22    [20126196]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
Lisichkin,

создайте на тестовом сервере тестовую_ремоут_базу, и линкед сервер на нее
20 янв 17, 11:33    [20126279]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
Lisichkin
Member

Откуда:
Сообщений: 487
StarikNavy
Спасибо!

Я на тестовом сервере создал базу, аналогичную с используемой базой на 'REMOTE_SERVER'
Далее с использованием комманд:

Here is an example of creating a Linked Server via script to specify link server name myGX620 for the SQL Server host name GX620.

/****** Object:  LinkedServer [myGX620]    Script Date: 04/07/2009 22:49:10 ******/

EXEC master.dbo.sp_addlinkedserver
    @server = N’myGX620&#8242;,
    @srvproduct=N’MSSQL’,
    @provider=N’SQLNCLI’,
    @provstr=N’PROVIDER=SQLOLEDB;SERVER=GX620&#8242;

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N’myGX620&#8242;,
    @useself=N’False,@locallogin=NULL,@rmtuser=N’sa’,@rmtpassword=’P@ssword!


На тестовом сервере создал LINKED сервер на самого себя с именем 'REMOTE_SERVER'
20 янв 17, 12:38    [20126644]     Ответить | Цитировать Сообщить модератору
 Re: Linked Server  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
StarikNavy
Lisichkin,

создайте на тестовом сервере тестовую_ремоут_базу, и линкед сервер на нее
Ну понятно, что нужно создать линк не на продакшен сервер :-)
20 янв 17, 15:00    [20127480]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить