Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
OW
Guest
есть два сервера, MSSQL2000, они чаще всего работают по очереди.
если один работает - второй нет, и наоборот. Чаще всего. Но могут и оба работать, равно как и оба не работать.

Задача - из таблиц оных стянуть на один, мой.
написал процедуру, ServerOn, которая возвращает 1, если сервер отвечает и 0 иначе.

пишу

set @SRV = 6
exec ServerOn @SRV OUT -- Доступен ли сервер 192.168.0.6
if @SRV = 1 -- Доступен
begin
insert into бла-бла-бла
select бла-бла-бла FROM [192.168.0.6].dbo.TABLE_N
end
set @SRV = 5
exec ServerOn @SRV OUT -- Доступен ли сервер 192.168.0.5
if @SRV = 1 -- Доступен
begin
insert into бла-бла-бла
select бла-бла-бла FROM [192.168.0.5].dbo.TABLE_N
end

не компилируется, т.к. сейчас сервер [192.168.0.5] не доступен, а пытается выполнить запрос, уже сейчас, на этапе CREATE PROCEDURE.

Однако, в реальности, этот запрос и не должен выполняться! Я проверю это и не пущу туда ветку программного хода.

Как сделать, что бы процедура откомпилировалась? или как еще можно выкрутиться?
31 май 11, 16:34    [10740235]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
Glory
Member

Откуда:
Сообщений: 104751
OW
не компилируется, т.к. сейчас сервер [192.168.0.5] не доступен, а пытается выполнить запрос, уже сейчас, на этапе CREATE PROCEDURE.

При компиляции запросы не выполняются, но проверяется наличие и структура таблиц
31 май 11, 16:36    [10740266]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
OW
Guest
Glory,

Спасибо.

а как же быть?
Как могу обмануть? Могу вообще как нибудь?
31 май 11, 16:41    [10740331]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
OW, а если сделать доступными оба сервера сразу, откомпилируется же?
31 май 11, 16:45    [10740375]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
OW
Guest
Shakill,

но я не могу этого сделать. Это сервера других людей.


тоже самое раньше я делал без проверки на доступность

insert into бла-бла-бла
select бла-бла-бла FROM [192.168.0.5].dbo.TABLE_N

insert into бла-бла-бла
select бла-бла-бла FROM [192.168.0.6].dbo.TABLE_N

но срывалось по ошибке, если не доступен один был и, следовательно, остальные не проверялись.
Захотел теперь апгрейдить процедурку вот..
31 май 11, 16:58    [10740496]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
Glory
Member

Откуда:
Сообщений: 104751
exec('...')
31 май 11, 16:59    [10740508]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
OW
Guest
т.е. видимо, ловили момент, когда все были доступны, получается.
Ведь создали как-то. (не я, к слову сказать, создал)
31 май 11, 17:00    [10740511]     Ответить | Цитировать Сообщить модератору
 Re: Как написать процедуру, с заведомо неработающим select, но неработающим только сейччас  [new]
OW
Guest
Glory,

exec(' insert into ... select ... from ДРУГОЙСЕРВЕР1 ') ?
31 май 11, 17:02    [10740522]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить