Вы можете выбрать @@ rowcount
Он покажет вам затронутые строки.
* 1005 например *
CREATE PROCEDURE [dbo].[DeleteAuthor]
(
@Author_ID int
)
AS
SET NOCOUNT OFF;
BEGIN
DELETE FROM AUTHORS
WHERE
(Author_ID = @Author_ID)
SELECT @@ROWCOUNT
END
Это также можно применить для обновления.
CREATE PROCEDURE [dbo].[UpdateAuthor]
(
@Author_ID int
)
AS
SET NOCOUNT OFF;
BEGIN
UPDATE AUTHORS
SET AuthorName = 'John'
WHERE
(Author_ID = @Author_ID)
SELECT @@ROWCOUNT
END
В качестве альтернативы вы можете использовать @@ Error и увеличить идентификатор ошибки @@ rowcount> 1 (если вы хотите обновить только одну строку).
* 1013 например *
CREATE PROCEDURE [dbo].[DeleteAuthor]
(
@Author_ID int
)
AS
SET NOCOUNT OFF;
BEGIN
DELETE FROM AUTHORS
WHERE
(Author_ID = @Author_ID)
IF @@ROWCOUNT <>1
BEGIN
RAISERROR ('An error occured',10,1)
RETURN -1
END
END
Как говорит Георгий, это будет возвращено в качестве кода возврата.