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

Откуда:
Сообщений: 763
Какие могут быть причины, что в BOL не указано, что IF сбрасывает @@ROWCOUNT в 0?
Сказано лишь, что
BOL
Statements such as USE, SET <option>, DEALLOCATE CURSOR, CLOSE CURSOR, BEGIN TRANSACTION or COMMIT TRANSACTION reset the ROWCOUNT value to 0.

select 'a'
if	1=1	select	@@ROWCOUNT --получаем 0

В далёком предке об этом упомянуто про @@ROWCOUNT
16 мар 16, 14:46    [18938366]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
tunknown,

Вы справку вообще читали?

Возвращает число строк, затронутых при выполнении последней инструкции.
16 мар 16, 14:51    [18938387]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
msLex
Member

Откуда:
Сообщений: 8174
Владислав Колосов
tunknown,

Вы справку вообще читали?

Возвращает число строк, затронутых при выполнении последней инструкции.


а где та тонкая грань между "инструкцией" и "не инструкцией"?
почему if "инструкция", declare @a int не инструкция, а declare @a int = 1 инструкция?
и что за "строки" затрагивает инструкция "declare @a int = 1"?
16 мар 16, 15:05    [18938511]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
баян еще со времен екзамена по 2000 сиквелу
16 мар 16, 15:08    [18938534]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
o-o
Guest
msLex
а где та тонкая грань между "инструкцией" и "не инструкцией"?
почему if "инструкция", declare @a int не инструкция, а declare @a int = 1 инструкция?
и что за "строки" затрагивает инструкция "declare @a int = 1"?

потому что declare @a int это объявление,
а declare @a int = 1 это объявление + присваивание значения (assignment: set @a = 1)
BOL
Statements that make an assignment in a query or use RETURN in a query set the @@ROWCOUNT value to the number of rows affected or read by the query
16 мар 16, 15:37    [18938781]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
msLex
Member

Откуда:
Сообщений: 8174
o-o
msLex
а где та тонкая грань между "инструкцией" и "не инструкцией"?
почему if "инструкция", declare @a int не инструкция, а declare @a int = 1 инструкция?
и что за "строки" затрагивает инструкция "declare @a int = 1"?

потому что declare @a int это объявление,
а declare @a int = 1 это объявление + присваивание значения (assignment: set @a = 1)
BOL
Statements that make an assignment in a query or use RETURN in a query set the @@ROWCOUNT value to the number of rows affected or read by the query

а "if 1=1" это что?
16 мар 16, 15:40    [18938806]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
msLex,

для не любителей хелпов

msdn
последняя строка для тебя
16 мар 16, 15:50    [18938863]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
o-o
Guest
msLex,
не знаю про IF.
по мне, так могли бы и включить в список "неочевидных" наравне с DEALLOCATE CURSOR,... .
а про присваивание цитата маленько не та, вот правильная:
BOL
Statements that make a simple assignment always set the @@ROWCOUNT value to 1.
16 мар 16, 15:52    [18938870]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
o-o
Guest
TaPaK
msLex,

для не любителей хелпов

msdn
последняя строка для тебя

можно и не тыкать, чай не в распивочной.
у меня в хэлпе от 2008 R2 (установлен локально, ибо интернета официально у меня вообще нет)
ничего подобного нет, так что еще раз: могли бы и явно это отметить,
и не в статье про ROWCOUNT_BIG, а в текущей.
не перетрудились бы

К сообщению приложен файл. Размер - 37Kb
16 мар 16, 15:58    [18938913]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
tunknown
Member

Откуда:
Сообщений: 763
TaPaK
последняя строка для тебя

Для меня. Получается, в давно существующем @@ROWCOUNT не указали, а в сравнительно новом ROWCOUNT_BIG() указали.
16 мар 16, 15:59    [18938920]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
msLex
Member

Откуда:
Сообщений: 8174
TaPaK
msLex,

для не любителей хелпов

msdn
последняя строка для тебя

во-первых, это статья про ROWCOUNT_BIG( ), ничего подобного в статье про @@rowcount нет, а мы обсуждаем именно его
во-вторых, ни в одной из этих статье нет ни слова про "print" , "raiseerror" (и, возможно, кучи других инструкций) которые тоже влияют на @@rowcount
16 мар 16, 16:02    [18938945]     Ответить | Цитировать Сообщить модератору
 Re: IF сбрасывает @@ROWCOUNT в 0  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37059
Модератор: Покидались какашками и хватит.
16 мар 16, 17:17    [18939466]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить