Я учусь через EF Core через учебники по здесь , и я сталкиваюсь со следующими утверждениями, которые используются в примерах запросов T-SQL:
1 SET NOCOUNT ON;
Значение (от здесь ):
Останавливает возвращение в качестве части сообщения количества строк, затронутых оператором Transact-SQL или хранимой процедурой. набор результатов.
2 SELECT @@ROWCOUNT;
Значение (от здесь )
Возвращает количество строк, затронутых последним оператором.
1 и 2 используются одновременно. И это смущает меня. Например, здесь:
exec sp_executesql N'SET NOCOUNT ON;
UPDATE [Books] SET [AuthorId] = @p0
WHERE [BookId] = @p1;
SELECT @@ROWCOUNT;
',N'@p1 int,@p0 int',@p1=4,@p0=1
Я не могу понять, почему кто-то хочет отключить эффект 2 с помощью 1, если можно избежать эффекта 2, просто не добавляяэто в запрос. Т.е. следующий запрос будет выполняться точно так же, как и выше:
exec sp_executesql N'UPDATE [Books] SET [AuthorId] = @p0
WHERE [BookId] = @p1;
',N'@p1 int,@p0 int',@p1=4,@p0=1
Я что-то здесь упускаю или для чего нужно одновременно использовать SET NOCOUNT ON
и SELECT @@ROWCOUNT
?