if begin end else
От: _ichensky Европа https://github.com/ichensky
Дата: 23.01.15 15:34
Оценка:
Зравствуйте.

1. Можно ли в ms sql server посмотреть скомпилированную процедуру в байткоде?

2. Почему ms sql server интерпретатор не всегда заходит в if else условие, если не пишется begin end, напр. код процедуры:
begin
if @a1 < @a2
    if @b1 < @b2
    begin 
        op1.. 
        op2..
    end
else
    if @c1 < @c2 
    begin
         op3.. -- Сюда не всегда заходит интепретарор
        op4..
    end     
end

Добавляем логирование и вдруг у нас код начинает работать:
begin
if @a1 < @a2
    if @b1 < @b2
    begin 
        op1.. 
        op2..
    end
else
    if @c1 < @c2 
    begin
        EXEC xp_logevent 60000, '...', informational;       
         op3.. -- Теперь сюда заходи. Хотя добавили только логирование
        op4..
    end     
end

Убираем логирование, добавляем begin, end и код работает:
begin
if @a1 < @a2
begin
    if @b1 < @b2
    begin 
        op1.. 
        op2..
    end
end
else
begin
    if @c1 < @c2 
    begin
         op3.. -- Теперь сюда заходи. 
        op4..
    end
end     
end
Підтримати Україну у боротьбі з країною-терористом.

https://prytulafoundation.org/
https://u24.gov.ua/

Слава Збройним Силам України!!! Героям слава!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.