Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

Как заставить SQL server выполнить часть хранимой процедуры?   Найти похожие ветки 

 
AndrewK   (2003-09-26 17:17) [0]

Привет!

Работаю с MS SQL 2000.

Как заставить SQL server выполнить только часть хранимой процедуры?

Есть хранимая процедура, которая выполняет некоторые операции с другой базой. Вторая база может иногда переводиться в Single_User. Как написать процедуру так, чтобы она перед выполнением проверяла состояние второй базы и если она в режиме Single_User, то выводила строку "База заблокирована" и завершала работу. Если же нет, то выполнить тело процедуры.

делаю так:
declare @BlockLevel sql_variant
select @BlockLevel = DATABASEPROPERTYEX("Angstrem1C", "UserAccess")
declare @DBReadOnly sql_variant
select @DBReadOnly = DATABASEPROPERTYEX("Angstrem1C", "Updateability")

declare @1CBlocked int
if (@BlockLevel <> "MULTI_USER") or (@DBReadOnly = "READ_ONLY") set @1CBlocked = 1 else set @1CBlocked = 0

if @1CBlocked = 1 begin
select 1 as ErrorCode, "База данных заблокирована." as ErrorMessage
end else begin
-- операции с другой базой --
end


Проблема у меня в том, что процедура пытается проверить процедуру до ее выполнения и поэтому получает ошибку доступа.

Можно как-нибудь обойти проблему?


 
NAlexey   (2003-09-26 17:25) [1]

>процедура пытается проверить процедуру
Не понял как это происходит? Какая процедура? Какую процедуру?


 
AndrewK   (2003-09-29 17:49) [2]

Может я плохо объяснил.

Мне вообще надо сделать вот что:

Есть процедура, которая должна выполнить некоторое действие с другой базой данных если она не находится в состоянии SINGLE_USER или READ_ONLY. Если база находится в этих режимах, то вернуть некоторый код.

Как написать такую процедуру?


 
Polevi   (2003-09-29 20:24) [3]

if not (SINGLE_USER или READ_ONLY)
выполнить некоторое действие с другой базой данных
else
вернуть некоторый код.


 
AndrewK   (2003-10-02 10:20) [4]

>Polevi: Невероятно, но не работает...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
6-74359
Son!K
2003-08-29 16:39
2003.10.23
Отправка пакетов


14-74431
Johnny Smith
2003-09-30 11:52
2003.10.23
---|Ветка была без названия|---


14-74454
sergeant
2003-10-03 18:25
2003.10.23
Помогите вспомнить


14-74437
павел
2003-10-03 01:19
2003.10.23
глобальные переменные


1-74120
plyaznik
2003-10-11 16:23
2003.10.23
нужна процедура





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский