SQL Server Error Messages - Msg 313¶
Error Message¶
Server: Msg 313, Level 16, State 2, Line 1
An insufficient number of arguments were supplied for the procedure or function Stored Procedure or Function Name.
Causes:¶
As the message describes, this error is encountered when you are passing arguments or parameters to a function or stored procedure which is less than what the function or stored procedure is expecting.
To illustrate, let’s say you have the following function definition:
CREATE FUNCTION [dbo].[ufn_Concat]
( @pString1 VARCHAR(10), @pString2 VARCHAR(10), @pString3 VARCHAR(10) )
RETURNS VARCHAR(30)
AS
BEGIN
RETURN ISNULL(@pString1 + ' ', '') +
ISNULL(@pString2 + ' ', '') +
ISNULL(@pString3, '')
END
This function expects 3 arguments, namely @pString1, @pString2 and @pString3. To use this function, you do the following:
SELECT [dbo].[ufn_Concat] ( [FirstName], [MiddleName], [LastName] ) AS [FullName]
FROM [dbo].[Customers]
The error will be encountered you don’t pass 3 arguments or parameters to the function, as follows:
SELECT [dbo].[ufn_Concat] ( [FirstName], [LastName] ) AS [FullName]
FROM [dbo].[Customers]
Server: Msg 313, Level 16, State 2, Line 1
An insufficient number of arguments were supplied for the procedure or function dbo.ufn_Concat.
Solution / Work Around:¶
To avoid this error from happening, always make sure that you pass the same number of arguments that a stored procedure or function is expecting. To know the parameters expected by a stored procedure, you can use the sp_help system stored procedure and pass the name of the stored procedure as the parameter.