Say we have stored procedure(s) performing simple operations like this:
CREATE PROCEDURE [dbo].[AddNewAuthorReturnID]
(
@Author_Name VARCHAR(MAX),
@Author_ID int OUTPUT
)
AS
SET NOCOUNT OFF;
BEGIN
INSERT INTO AUTHORS (@Author_Name)
VALUES (@Author_Name)
SET @Author_ID = SCOPE_IDENTITY()
SELECT @Author_ID
END
In the above procedure, the returned id is an indication of successful operation.
Consider the equivalent with DELETE.
CREATE PROCEDURE [dbo].[DeleteAuthor]
(
@Author_ID int
)
AS
SET NOCOUNT OFF;
BEGIN
DELETE FROM AUTHORS
WHERE
(Author_ID = @Author_ID)
END
- How can we know the operation was
successful and theAUTHORSrecord was
succesfully removed if we use the above
procedure ? - With an update operation?
You could select @@rowcount
It will show you the rows affected.
e.g
This can be applied to update too.
Alternatively you could use @@Error and raise an error id @@rowcount > 1 (if you only wanted to update one row).
e.g
As Giorgi says this will be returned as a returncode.