SQL,article,geared,beginners,wanting,learn,st
Quick Search for:  in language:    
SQL,article,geared,beginners,wanting,learn,st
   Code/Articles » |  Newest/Best » |  Community » |  Jobs » |  Other » |  Goto » | 
CategoriesSearch Newest CodeCoding ContestCode of the DayAsk A ProJobsUpload
SQL Stats

 Code: 28,909 lines
 Jobs: 440 postings

 
Sponsored by:

 

You are in:

 
Login



Latest Code Ticker for SQL.
Link_SQLServer_ Oracle
By Daniel G. Menendez on 8/20


SQL Strip Alpha/Numeric
By Jay Gardner on 8/19


how to apply a filter to an Access 2000 form by using a combo box as a filter parameter
By David Nishimoto on 8/16


Click here to put this ticker on your site!


Add this ticker to your desktop!


Daily Code Email
To join the 'Code of the Day' Mailing List click here!





Affiliate Sites



 
 
   

Writing a Stored Procedure

Print
Email
 

Submitted on: 7/21/2000 1:12:46 PM
By: Nathan Pond  
Level: Beginner
User Rating: By 76 Users
Compatibility:SQL Server 7.0

Users have accessed this article 50578 times.
 
(About the author)
 
     This article is geared for beginners wanting to learn stored procedures. No prior experience on stored procedures is required, however a basic understanding of SQL Query Language might be needed.

 
 
Terms of Agreement:   
By using this article, you agree to the following terms...   
1) You may use this article in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.   
2) You MAY NOT redistribute this article (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   
3) You may link to this article from another website, but ONLY if it is not wrapped in a frame. 
4) You will abide by any additional copyright restrictions which the author may have placed in the article or article's description.
ENTER> Writing a Stored Procedure
By Nathan Pond


If you're anything like me, you don't easily pick up on development techniques just by hearing about them. When I first installed my MS SQL server on my computer, it opened up a whole new world of features that I had never used. Among these were Stored Procedures. This article is designed to tell you how to begin writing stored procedures. I am using Microsoft SQL Server 7.0, but these examples should work in any SQL version.

Writing Stored Procedures doesn't have to be hard. When I first dove into the technology, I went to every newsgroup, web board, and IRC channel that I knew looking for answers. Through all the complicated examples I found in web tutorials, it was a week before I finally got a working stored procedure. I'll stop rambling now and show you what I mean:

Normally, you would call a database with a query like:

Select column1, column2 From Table1

To make this into a stored procedure, you simple execute this code:

CREATE PROCEDURE sp_myStoredProcedure
AS
Select column1, column2 From Table1
Go

That's it, now all you have to do to get the recordset returned to you is execute the stored procedure. You can simply call it by name like this:

sp_myStoredProcedure

Note: You can name a stored procedure anything you want, provided that a stored procedure with that name doesn't already exist. Names do not nee to be prefixed with sp_ but that is something I choose to do just as a naming convention. It is also somewhat a standard in the business world to use it, but SQL server does not require it.

Now, I realize you aren't gaining much in this example. I tried to make it simple to make it easy to understand. Later in this article, we'll look at how it can be useful, for now let's look at how you can call a Stored Procedure with parameters.

Let's say that we want to expand on our previous query and add a WHERE clause. So we would have:

Select column1, column2 From Table1
Where column1 = 0

Well, I know we could hard code the 'Where column1 = 0' into the previous stored procedure. But wouldn't it be neat if the number that 0 represents could be passed in as an input parameter? That way it wouldn't have to be 0, it could be 1, 2, 3, 4, etc. and you wouldn't have to change the stored procedure. Let's start out by deleting the stored procedure we already created. Don't worry, we'll recreate it with the added feature of an input parameter. We will drop it like this:

DROP PROCEDURE sp_myStoredProcedure

Now we can recreate it with the input parameter built in:

CREATE PROCEDURE sp_myStoredProcedure
 @myInput int
AS
Select column1, column2 From Table1
Where column1 = @myInput
Go

Ok, why don't we pause here and I'll explain in more detail what is going on. First off, the parameter: you can have as many parameters as you want, or none at all. Parameters are set when the stored procedure is called, and the stored procedure receives it into a variable. @myInput is a variable. All variables in a stored procedure have a @ symbol preceding it. A name preceded with @@ are global variables. Other than that, you can name a variable anything you want. When you declare a variable, you must specify its datatype. In this case the datatype is of type Int (Integer). Now, before I forget, here's how to call the stored procedure with a parameter:

sp_myStoredProcedure 0

If you want more than one parameter, you seperate them with commas in both the stored procedure and the procedure call. Like so:

CREATE PROCEDURE sp_myStoredProcedure
 @myInput int,
 @myString varchar(100),
 @myFloat
AS
.....
Go

And you would call it like this:

sp_myStoredProcedure 0, 'This is my string', 3.45

Note: The varchar datatype is used to hold strings. You must specify the length of the string when you declare it. In this case, the variable is assigned to allow for 100 characters to be help in it.

Now, I'm sure some of you are wondering if there is a difference for SQL calls coming from ASP. There really isn't, let's take our first stored procedure example and I'll show how it is called from ASP. If it wasn't a stored procedure, you would call it something like this:

>%
	dim dataConn, sSql, rs
	set dataConn = Server.CreateObject("ADODB.Connection")
	dataConn.Open "DSN=webData;uid=user;pwd=password" 'make connection
	sSql = "Select column1, column2 From Table1"
	Set rs = dataConn.Execute(sSql) 'execute sql call
%>

Now let's see how we call the stored procedure.

>%
	dim dataConn, sSql, rs
	set dataConn = Server.CreateObject("ADODB.Connection")
	dataConn.Open "DSN=webData;uid=user;pwd=password" 'make connection
	sSql = "sp_myStoredProcedure"
	Set rs = dataConn.Execute(sSql) 'execute sql call
%>

As you can see, the only difference is the query that is to be executed, which is stored in the sSql command. Instead of being the actual query, it is simply the name of the stored procedure. Now let's take a quick look at how you would call it with parameters. In our second example, we created the stored procedure to accept one integer parameter. Here's the code:

>%
	dim dataConn, sSql, rs, myInt
	myInt = 1 'set myInt to the number we want to pass to the stored procedure
	set dataConn = Server.CreateObject("ADODB.Connection")
	dataConn.Open "DSN=webData;uid=user;pwd=password" 'make connection
	sSql = "sp_myStoredProcedure " & myInt
	Set rs = dataConn.Execute(sSql) 'execute sql call
%>

Now, before I get to far, let me introduce the ALTER command you can use to overwrite stored procedures, so you don't have to drop them then recreate them. You can use the ALTER command like this:

ALTER PROCEDURE sp_myStoredProcedure
AS
......
Go

This will overwrite the stored procedure that was there with the new set of commands, but will keep permissions, so it is better than dropping and recreating the procedure.

As promised I am going to dive into more detail about stored procedures. Let me start out by answering a common question I received via e-mail. Many people wrote asking if it was possible, and if so how to do it, to use stored procedures do to more than select statements. Absolutely!!! Anything that you can accomplish in a sql statement can be accomplished in a stored procedure, simply because a stored procedure can execute sql statements. Let's look at a simple INSERT example.

CREATE PROCEDURE sp_myInsert
 @FirstName varchar(20),
 @LastName varchar(30)
As
INSERT INTO Names(FirstName, LastName)
values(@FirstName, @LastName)
Go

Now, call this procedure with the parameters and it will insert a new row into the 'Names' table with the 'FirstName' and 'LastName' columns approiately assigned. And here is an example of how to call this procedure with parameters from an ASP page:

>%
dim dataConn, sSql
dim FirstName, LastName
FirstName = "Nathan"
LastName = "Pond"
set dataConn = Server.CreateObject("ADODB.Connection")
dataConn.Open "DSN=webData;uid=user;pwd=password" 'make connection
sSql = "sp_myInsert '" & FirstName & "', '" & LastName & "'"
dataConn.Execute(sSql) 'execute sql call
%>

Remeber, you can use stored procedures f -- or anything, including UPDATE and DELETE calls. Just embed a sql statement into the procedure. Notice that the above procedure doesn't return anything, so you don't need to set a recordset. The same will be true for UPDATE and DELETE calls. The only statement that returns a recordset is the SELECT statement.

Now, just because a recordset isn't returned, it doesn't mean that there won't be a return value. Stored procedures have the ability to return single values, not just recordsets. Let me show you a practical example of this. Suppose you have a login on your site, the user enters a username and password, and you need to look these up in the database, if they match, then you allow the user to logon, otherwise you redirect them to an incorrect logon page. Without a stored procedures you would do something like this:

>%
dim dataConn, sSql, rs
set dataConn = Server.CreateObject("ADODB.Connection")
dataConn.Open "DSN=webData;uid=user;pwd=password" 'make connection
sSql = "Select * From User_Table Where UserName = '" & _
	Request.Form("UserName") & "' And Password = '" & _
	Request.Form("Password") & "'"
Set rs = dataConn.Execute(sSql) 'execute sql call
If rs.EOF Then
	'Redirect user, incorrect login
	Response.Redirect "Incorrect.htm"
End If

'process logon code ............. %>

Now let's look at how we would accomplish this same task using a stored procedure. First let's write the procedure.

CREATE PROCEDURE sp_IsValidLogon
 @UserName varchar(16),
 @Password varchar(16)
As
if exists(Select * From User_Table
Where UserName = @UserName
 And
Password = @Password)
 return(1)
else
 return(0)
Go

What this procedure does is take the username and password as input parameters and performs the lookup. If a record is returned the stored procedure will return a single value of 1, if not the procedure will return 0. No recordset is returned. Let's look at the asp you would use:

>% 
<--#INCLUDE VIRTUAL="/include/adovbs.inc"-->
dim dataConn, adocmd, IsValid
set dataConn = Server.CreateObject("ADODB.Connection")
dataConn.Open "DSN=webData;uid=user;pwd=password" 'make connection
Set adocmd = Server.CreateObject("ADODB.Command")
adocmd.CommandText = "sp_IsValidLogon"
adocmd.ActiveConnection = dataConn
adocmd.CommandType = adCmdStoredProc
adocmd.Parameters.Append adocmd.CreateParameter("return", _
adInteger, adParamReturnValue, 4)
adocmd.Parameters.Append adocmd.CreateParameter("username", _
adVarChar, adParamInput, 16, _
Request.Form("UserName"))
adocmd.Parameters.Append adocmd.CreateParameter("password", _
adVarChar, adParamInput, 16, _
Request.Form("Password"))
adocmd.Execute
IsValid = adocmd.Parameters("return").Value
If IsValid = 0 Then
	'Redirect user, incorrect login
	Response.Redirect "Incorrect.htm"
End If

'process logon code ............. %>

Now lets slow down for a minute and I'll go through what we just did. First thing I did was create a command object for ADO. I did this with:

Set adocmd = Server.CreateObject("ADODB.Command")

Next I had to tell the object what command it would be executing, with this line:

adocmd.CommandText = "sp_IsValidLogon"

Notice that the command is the name of the stored procedure. You must tell the command object which connection (database) to use, to do this you use .ActiveConnection. .CommandType is a property that tells sql what type of command it is trying to execute. adCmdStoredProc is a constant variable declared in the include file adovbs.inc. (For more information on adovbs.inc, be sure to read ADOVBS.INC - Use It!) It represents the number telling sql that the command is to execute a stored procedure. The .Append method is used to add return values and parameters. I had to add the username and password parameters, as well as set up the return value. I then executed the command with .Execute, and .Parameters("return").Value held the return value from the procedure. I set that to the variable IsValid. If IsValid is 0, the login is incorrect, if it is 1, the login is correct.

Now even after the explanation this is still a lot to take in. My recommendation to you is to dive into your server and try a few simple tasks like this. Practice makes perfect. One note: sometimes I get errors when I try to .Append the return value after I have already set the parameters. Meaning I might get an error if the above code looked like this:

>%
.....
Set adocmd = Server.CreateObject("ADODB.Command")
adocmd.CommandText = "sp_IsValidLogon"
adocmd.ActiveConnection = dataConn
adocmd.CommandType = adCmdStoredProc
adocmd.Parameters.Append adocmd.CreateParameter("username", _
adVarChar, adParamInput, 16, Request.Form("UserName"))
adocmd.Parameters.Append .CreateParameter("password", _
adVarChar, adParamInput, 16, Request.Form("Password"))
adocmd.Parameters.Append .CreateParameter("return", _
adInteger, adParamReturnValue, 4)
adocmd.Execute
IsValid = adocmd.Parameters("return").Value
.....
%>

I'm not exactly sure why this happens, but I just made it a habit to declare the return value first, then the parameters.

Now I know what some of you are saying. "The original ASP example for checking the username and password without using a stored procedure is so much easier, all you did was confuse me! Can Stored Procedures actually be used to improve efficiency?" Well I'm glad you asked, because although the example above did require a bit more code, it is important to realize that it is much more efficient. Stored procedures have other benefits besides efficiency, though. For a full explanation of the benefits of stored procedures, be sure to read the SQL Guru's Advice on the issue. And now I am going to show you an example of a task where using stored procedures minimizes your database calls.

Assume you have the same script as before for validating usernames and passwords. All it really does is say whether it is a valid username and password. Suppose you want to add functionality in to log all failed attempts at logging on into another table called 'FailedLogons'. If you weren't using a stored procedure you would have to make another call to the database from your ASP code. However, in the example using the stored procedure, we don't have to touch the ASP code at all, we simply modify the procedure like so:

ALTER PROCEDURE sp_IsValidLogon
 @UserName varchar(16),
 @Password varchar(16)
As
if exists(Select * From User_Table 
Where UserName = @UserName
 And
Password = @Password)
 begin
 return(1)
 end

else begin INSERT INTO FailedLogons(UserName, Password) values(@UserName, @Password) return(0) end
Go

Wasn't that neat? But that's not all, while we're at it why not add a little more functionality? Let's say that we want to run a check on each incorrect login, and if there have been more than 5 incorrect logins for that username within the past day, that account will be disabled. We would have to have the 'FailedLogons' table set up to have a 'dtFailed' column with a default value of ('GetDate()'). So when the incorrect logon is inserted into the table, the date and time is recorded automatically. Then we would modify our stored procedure like this:

ALTER PROCEDURE sp_IsValidLogon
 @UserName varchar(16),
 @Password varchar(16)
As
if exists(Select * From User_Table
Where UserName = @UserName
 And
Password = @Password
			And
		Active = 1)
 begin
 return(1)
 end

else begin INSERT INTO FailedLogons(UserName, Password) values(@UserName, @Password) declare @totalFails int Select @totalFails = Count(*) From FailedLogons Where UserName = @UserName And dtFailed > GetDate()-1 if (@totalFails > 5) UPDATE User_Table Set Active = 0 Where UserName = @UserName return(0) end
Go

Now, let's take a closer look at what I was doing. First thing, check to see if the username and password exist on the same row, and that that user is active, if so, login is fine, return 1 to the user and exit the procedure. If the login is not ok though, we want to log it. The first thing the procedure does is insert the record into the 'FailedLogons' table. Next we declare a variable to hold the number of failed logons for that same day. Next we assign that value by using a sql statement to retrieve the number of records for that username, within the same day. If that number is greater than 5, it's likely someone is trying to hack that account so the the username will be disabled by setting the active flag in the 'User_Table' to 0. Finally, return 0 letting the calling code (ASP) know that the login was unsuccessful. To accomplish this same task using only ASP, you would have needed to make 4 database calls. The way we just did it it is still only one database call, plus the fact that all that functionality we added at the end was in the stored procedure, we didn't have to touch the ASP code at all!

Note about 'begin/end': When using an 'If' statement in a stored procedure, as long as you keep the conditional code to one line you won't need a 'begin' or 'end' statement. Example:

if (@myvar=1)
 return(1)
else
 return(2)

However, if you need more than one line, it is required that you use begin and end. Example:

if (@myvar=1)
 begin
 do this.....
 and this.....
 return(1)
 end

else begin do this.... return(2) end

I hope that I have given enough information to keep you active in learning stored procedures. If you're anything like me, getting the basics is the hard part, from there you can experiment and learn on your own. That is why I decided to create this article. Feel free to e-mail me at nathan@npond.com with any questions or comments about any of my articles.

Happy Programing!

 
Report Bad Submission
Use this form to notify us if this entry should be deleted (i.e contains no code, is a virus, etc.).
Reason:
 
Your Vote!

What do you think of this article(in the Beginner category)?
(The article with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor See Voting Log
 
Other User Comments
7/22/2000 2:30:20 PM:gary.klemm@weirton.com
Stored Procedures
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/24/2000 3:35:09 PM:Leo
Good Job!!!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/25/2000 5:43:14 PM:Imran
Nathan I love the way you explained Stored procedure. I have use stored procedure in Oracle for my class project. Since you mentioned you Installed SQL SERVER 7.0 I was wondering what books did you buy for administration MS SQL SERVER 7.0 What books really helped you. Because I have to install it on my NT Server which I just installed 2 day ago. I have no clue how am I going to install it and administor it. I will be using MS SQL SERVER for my upcomming projects. So can you HELP. Regards Imran
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/25/2000 10:18:12 PM:Nathan Pond
Imran, Actually I don't really have any recommendations. I first learned some of the basics on usign MS SQL 6.5, and then a friend helped me upgrade to 7.0. Most of the stuff I learned was just from playing around with it. SQL 7 is VERY easy to install. I'm sure there are some good books out there, I'm just not sure which ones are the best. Try visiting sqlin.com, they might have some suggestions there. Regards, Nathan
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/28/2000 10:53:02 AM:Sam Abraham
A well explained mix of Asp, and stored procedures yet simple to understand even for Sql Server beginers like me. Articles like this are an asset to the programming community. A job well done.
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/29/2000 1:52:13 PM:Brian Lockwood
Excellent article this is the "RIGHT" way to do data access. For a tool that can write stored procedures automatically and uses ADO command objects in VB or ASP to call them using this same syntax see www.lockwoodtech.com. There are products for SQL Server and MS Access. Note: This one (little known) Meta tag will replace the ADOVBS.inc. It picks up all ADO constants automatically. "<!-- METADATA TYPE="typelib" UUID="00000200-0000-0010-8000-00AA006D2E A4" NAME="ADO Type Library"-->"
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
8/3/2000 10:24:08 AM:Manish
Fantastic. Well, there are tons of site and lot of articles telling you about stored procedures and not to add some articles are not worded nicely. This article was not only worded nicely put was exactly what one would to start writing stored procedure. And to top it all
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
8/23/2000 1:27:34 PM:Topaz2000
Perfect Just what I was looking for Thanks to the Author and planet-source-code
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
10/26/2000 2:02:04 AM:Charl
Thanks Nathan for your help. Now i can jump into using SP's as I am currently creating software that will need the most effecient menas of finding and returning data from a huge DB. Thanks
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
10/26/2000 2:03:39 AM:Charl
Thanks Nathan, this tutor was very useful to me as a newby in SP's. I will definatley be using SP's for more effecient queries to by Db via my ASP pages and VB apps. Thank you.
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
11/28/2000 2:35:36 AM:Ernest
Hi! I like the way you presented. You let me know the Stored Procedures easily. Keep on! I will read what you write!! One thing that I do not like. The page is not printer friendly. Some text at the right side are truncated!!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
1/2/2001 3:40:21 PM:mmroberts
Excellent article. It was referred to me by a friend who is learning SQL. I am a web developer who struggled with learning this stuff on my own. I wish I would have had this article then! Keep up the good work!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
3/8/2001 4:11:00 PM:Joseph M. Ferris
Nathan, Great Job! Need a quick refresher on SP's and this did the trick. Thanks.
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
4/19/2001 5:06:08 PM:sampathgowri
Hi, It was really very good. Why don't you give one full project description. Telling as how to start, screen design, step by step,till reports, etc. Thanks and Regards sampathgowri
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
4/24/2001 6:02:32 AM:Daniel Kent
Are you aware that prefixing user defined stored procedures with sp, as you have done in this article, makes their performance slightly worse than using another prefix? This is because SQL server uses sp for built in stored procedures. When you call a stored procedure that starts with sp, SQL server will look for the built in procedure first, slowing your procedure calls down.
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
4/24/2001 6:06:03 AM:Daniel Kent
Are you aware the prefixing user defined stored procedures with "sp" degrades their performance slightly? SQL server uses sp as a prefix for its built in stored procedures. If you prefix your stored procedures with sp, SQL server will check for a built in stored procedure first, slighly affecting performance. Its a small amount but as we can choose whatever we want to prefix our sprocs, its worth bearing in mind. Good article though!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
5/28/2001 5:20:06 PM:Johanna
This really is excellent! I developed an understanding of stored procedures, and saw how I could put it to use in an ASP application in 5(!) minutes! Thanks, and I look forward to more of your tutorials! Johanna
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
6/5/2001 11:45:24 AM:meyy
good work! keep it up do u have any help writing stored procedure to typically create a flat file from the database in comma seperated format.. thanks palani60173@lycos. com
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
8/18/2001 1:13:56 PM:max mail
cool article. the reason you have to append the 'return' parameter to the parameters collection first is because the stored procedure returns its value before any other output parameter. the order of other parameters appended to the collecttion has to match the order of parameters declared in the stored procedure (i tested this on sql 2000).
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
8/23/2001 4:40:08 AM:Kishore Kumar
Excellent article for a beginner like me, thanks a lot, please keep posting like this, once again thanks a lot
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
9/18/2001 4:55:38 PM:Eric Krauss
This article is PERFECT!!!! I just got a SQL 2000 Server for my databases yesterday and the stored procedures were the only thing I could not figure out. I went out and bought a book, looked all over the internet, and nothing. After reading your article I understand it like it is plain english!!! A great service to all beginning SQL programmers!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
1/14/2002 12:36:07 AM:Greg Beard
Excellent - thanks.
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
2/7/2002 11:19:03 PM:Derreck
YOU ARE DA MAN!!! Finally, i can automate tasks in my shopping cart programs, and reduce overhead. You are a life saver!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
3/18/2002 4:52:12 AM:weng54
thanks man!
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
3/19/2002 7:49:26 AM:Ivin
Execellent...it was short
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
3/19/2002 7:53:50 AM:Ivin
Excellent
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
6/20/2002 5:57:09 AM:Rags
Good One Man :)
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
6/26/2002 7:18:46 AM:Somenath Dey
Excellent Contents.. Perfect for some one like me new to this area.. Good job done..
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/6/2002 7:13:06 AM:Alkesh Parikh
Excellent Article...Thanks a lot ...u make work so much easier for so many devlopers like me...keep it up
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
7/19/2002 2:11:43 PM:Saverio Mercurio
A bit late, but previous comments regarding not using "sp" as the prefix should actually be that you shouldn't use "sp_" (note the underscore). It's OK to use "sp" (e.g., "spMyStoredProc"). From the SQL Server Online doc: It is strongly recommended that you do not create any stored procedures using sp_ as a prefix. SQL Server always looks for stored procedures beginning with sp_ in this order: 1. Look for the stored procedure in the master database first. 2. Look for the stored procedure based on any qualifiers provided (database name or owner). 3. Look for the stored procedure using dbo as the owner, if one is not specified.
Keep the Planet clean! If this comment was disrespectful, please report it:
Reason:

 
Add Your Feedback!
Note:Not only will your feedback be posted, but an email will be sent to the code's author in your name.

NOTICE: The author of this article has been kind enough to share it with you.  If you have a criticism, please state it politely or it will be deleted.

For feedback not related to this particular article, please click here.
 
Name:
Comment:

 

Categories | Articles and Tutorials | Advanced Search | Recommended Reading | Upload | Newest Code | Code of the Month | Code of the Day | All Time Hall of Fame | Coding Contest | Search for a job | Post a Job | Ask a Pro Discussion Forum | Live Chat | Feedback | Customize | SQL Home | Site Home | Other Sites | About the Site | Feedback | Link to the Site | Awards | Advertising | Privacy

Copyright© 1997 by Exhedra Solutions, Inc. All Rights Reserved.  By using this site you agree to its Terms and Conditions.  Planet Source Code (tm) and the phrase "Dream It. Code It" (tm) are trademarks of Exhedra Solutions, Inc.