Marking a parameter for output means that callers will expect its value to be updated with a result from the execution of the procedure. Failing to
update the parameter before the procedure returns is surely an error.
Noncompliant code example
CREATE PROCEDURE greet
@Name varchar(20),
@Greeting varchar(25) OUTPUT -- Noncompliant
AS
DECLARE @Message VARCHAR(45)
SET @Message = N'Hello ' + RTRIM(@Name);
PRINT @Message
GO
Compliant solution
CREATE PROCEDURE greet
@Name varchar(20),
@Greeting varchar(25) OUTPUT
AS
SELECT @Greeting = N'Hello ' + RTRIM(@Name);
GO