Msg 2812, Level 16, State 62, Line 1 Could not find stored procedure ”

Posted on : 07-12-2011 | By : Devi Prasad | In : SQL Errors

Share:

2


This error message occurs when SQL server interprets the text you have given as a stored procedure and cannot find a procedure with that name.

Possible reasons:

Summary:

Syntax error in sql code, Mistyped SQL Code
Stored procedure does not exist
Stored procedure got deleted
Missing schema name of the procedure in the query
Using exec with dynamic sql
Using Unicode with osql
Using extended stored procedures like xp_cmdshell on azure environment.

In Detail:

- Mistyped SQL Code

Example:

abcd

When you try to execute the above code you get the error
Msg 2812, Level 16, State 62, Line 1
Could not find stored procedure ‘abcd’.

- SQL Server interprets the single word that is sent as a query as the name of stored procedure with no parameters.

Example:
Create a stored procedure named abcd

CREATE PROCEDURE abcd
AS
SELECT * FROM SYS.tables

Now try to execute the below query:

abcd

The result would be the output of executing the procedure abcd.

So in order to avoid the above error, when querying sql server using a single word then make sure that the procedure with that name exists.

- You might expect the stored procedure with the name to exist but it isn’t.

To check if the procedure exists you can use the below query:

SELECT * FROM SYS.PROCEDURES WHERE NAME LIKE '%PROCEDURENAME%'

replace PROCEDURENAME with the name of the procedure.

- There could be a missing schema name of the procedure in the query

procedures with schema names would be like dbo.sp_abcd , products.sp_createproduct etc.

To find the schema name of the stored procedure you can use the following query:

select SCHEMA_NAME(schema_id),* from sys.procedures

You can also alternatively use the below query:

sp_help 'PROCEDURENAME'

- This error could also be due to using exec with dynamic sql.

Try opening and closing the braces after exec to avoid such error, also you can use sp_executesql.


exec (@dynamicsql)
--or
exec sp_executesql @dynamicsql

– when using unicode with osql

osql ignores Unicode files, you need to use -u switch with the osql command.

– Using SQL Azure and extended stored procedures
you could be using azure environment and SQL Azure does not have the extended stored procedures like xp_cmdshell.


Good coding standard would be to add exec statement beofore the name of the stored procedure.




References : Devi Prasad (sqlserverlearner.com)

Need Help On SQL Server?

Cannot Find Solution to your problem (or) If you are looking for some help on SQL Server. Dont worry Click Here to Post your question and solve your issue.


Do you like my blog?

If you liked reading this blog, please help spread the word by sharing this blog with your friends.




Comments (2)

whenever i execute any stored procedure , it just display the message ‘ could not find the stored procedure (name)’….. i am displaying here a simple query of stored procedure for better understand

CREATE PROC PRO2 @FirstName char(15)=NULL , @City char(15)=NULL
AS
SELECT * FROM PERSONS
WHERE FirstName LIKE ISNULL(@FirstName,FirstName)+’%’
AND
@City LIKE ‘%’+ISNULL(@City,City)+’%’
GO
EXEC PRO2 @FirstName=’h',@City=’lt’

even i do this query to assure its existence ‘sp_help pro2′ …… this works and shows me its contents …. i think there is a problem in schema but i cont understand this term clearly ……. plz help me out for this !

Excellent article.

Write a comment



Tags: , , ,