Re: using 'sp_' as a naming convention for stored procedures
From: Tom Moreau (tom_at_dont.spam.me.cips.ca)
Date: 03/14/04
- Next message: Erland Sommarskog: "Re: setting scale parameters"
- Previous message: Erland Sommarskog: "Re: Printing the KEYS of all tables"
- In reply to: Scott: "using 'sp_' as a naming convention for stored procedures"
- Next in thread: Tim S: "Re: using 'sp_' as a naming convention for stored procedures"
- Reply: Tim S: "Re: using 'sp_' as a naming convention for stored procedures"
- Messages sorted by: [ date ] [ thread ]
Date: Sun, 14 Mar 2004 18:35:46 -0500
>From the BOL "Creating a Stored Procedure":
System Stored Procedures
Many of your administrative activities in Microsoft® SQL ServerT 2000 are
performed through a special kind of procedure known as a system stored
procedure. System stored procedures are created and stored in the master
database and have the sp_ prefix. System stored procedures can be executed
from any database without having to qualify the stored procedure name fully
using the database name master.
It is strongly recommended that you do not create any stored procedures
using sp_ as a prefix. SQL Server always looks for a stored procedure
beginning with sp_ in this order:
1.. The stored procedure in the master database.
2.. The stored procedure based on any qualifiers provided (database name
or owner).
3.. The stored procedure using dbo as the owner, if one is not specified.
Therefore, although the user-created stored procedure prefixed with sp_ may
exist in the current database, the master database is always checked first,
even if the stored procedure is qualified with the database name.
Important If any user-created stored procedure has the same name as a
system stored procedure, the user-created stored procedure will never be
executed.
-- Tom ---------------------------------------------------- Thomas A. Moreau, BSc, PhD, MCSE, MCDBA SQL Server MVP Columnist, SQL Server Professional Toronto, ON Canada www.pinnaclepublishing.com/sql . "Scott" <anonymous@discussions.microsoft.com> wrote in message news:cda301c40a19$103893e0$a301280a@phx.gbl... I know that using 'sp_' as a naming convention for stored procedures is not a good idea because MS uses that naming for system stored procedures. I am working on a system where the original developer had all of the stored procedures named "sp_" then the name. I am being told that this is causing a problem with the server because of it. The DBA group told me that when using "sp_" as a name for a stored procedure it automatically causes the call to go to the master DB to look it up. I have never heard of this before. Has anyone else? Additional information: In my connection string I specify the DB name. I do not reference any tables outside of the DB the sproc resides in. Any feedback would be appreciated. thanks Scott http://support.microsoft.com/default.aspx?scid=kb;en- us;159901 The "Transact-SQL Reference," under the User-defined System Stored Procedures heading, states: When executed, a stored procedure is typically found within the current database. If the procedure name begins with sp_ and is not found in the current database, SQL Server will look in the master database. This statement incorrectly implies that you can create user-defined system stored procedures outside of the master database. The statement in Example H of the CREATE PROCEDURE Examples section is correct: "user-defined system stored procedures...must be created by the system administrator in the master database."
- Next message: Erland Sommarskog: "Re: setting scale parameters"
- Previous message: Erland Sommarskog: "Re: Printing the KEYS of all tables"
- In reply to: Scott: "using 'sp_' as a naming convention for stored procedures"
- Next in thread: Tim S: "Re: using 'sp_' as a naming convention for stored procedures"
- Reply: Tim S: "Re: using 'sp_' as a naming convention for stored procedures"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|