Passing Expressions to Stored Procedure Parameters in SQL Server

Q

Can You Pass Expressions to Stored Procedure Parameters in SQL Server Transact-SQL?

✍: FYIcenter.com

A

Can you pass expressions to stored procedure parameters? The answer is no.

When executing stored procedures, all input values must be entered as data literals, which can be specified within single quotes ('), or without them if they cause no confusion. The tutorial exercise below shows you how input values should be specified:

CREATE PROCEDURE area_of_circle @radius REAL
AS BEGIN
   PRINT 'Radius = ' + STR(@radius,9,3);
   PRINT 'Area = ' + STR(3.14*@radius*@radius,9,3);
END;
GO

-- Input value without quotes
EXEC area_of_circle 1.5;
GO
Radius =     1.500
Area =     7.065

-- Input value with quotes 
EXEC area_of_circle '1.5';
GO
Radius =     1.500
Area =     7.065

-- Expressions are not allowed
EXEC area_of_circle 1.0+0.5;
GO
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '+'.

 

Using Stored Procedures in SQL Server Transact-SQL

⇒⇒SQL Server Transact-SQL Tutorials

2016-12-28, 226👍, 0💬