Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...      http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
12,503,838 members (54,559 online)                                                                        Sign in
                                                                                                   Search for articles, questions, tips
          home         articles        quick answers            discussions           features          community                    help
          Articles » Database » Database » SQL Server
                                                                                                                                                            Sql Server - How To Write a Stored Procedure in SQL Server
                  Vivek Johari, 12 Nov 2010        CPOL                                                 Rate this:
                                     4.80 (106 votes)
          Stored Procedure in SQL Server can be defined as the set of logically group of SQL statement which are grouped to perform a
          specific task. This article will describe the Stored Procedure in SQL Server and their benefits.
          Stored Procedure: Stored Procedure in SQL Server can be defined as the set of logical group of SQL statements which are
          grouped to perform a specific task. There are many benefits of using a stored procedure. The main benefit of using a stored
          procedure is that it increases the performance of the database.The other benefits of using the Stored Procedure are given below.
          Benefits of Using the Stored Procedure
               1. One of the main benefits of using the Stored procedure is that it reduces the amount of information sent to the database
                  server. It can become a more important benefit when the bandwidth of the network is less. Since if we send the SQL
                  query (statement) which is executing in a loop to the server through network and the network gets disconnected, then
                  the execution of the SQL statement doesn't return the expected results, if the SQL query is not used between Transaction
                  statement and rollback statement is not used.
               2. Compilation step is required only once when the stored procedure is created. Then after it does not require
                  recompilation before executing unless it is modified and reutilizes the same execution plan whereas the SQL statements
                  need to be compiled every time whenever it is sent for execution even if we send the same SQL statement every time.
               3. It helps in re usability of the SQL code because it can be used by multiple users and by multiple clients since we need to
                  just call the stored procedure instead of writing the same SQL statement every time. It helps in reducing the
                  development time.
               4. Stored procedure is helpful in enhancing the security since we can grant permission to the user for executing the Stored
                  procedure instead of giving permission on the tables used in the Stored procedure.
               5. Sometimes, it is useful to use the database for storing the business logic in the form of stored procedure since it makes
                  it secure and if any change is needed in the business logic, then we may only need to make changes in the stored
                  procedure and not in the files contained on the web server.
          How to Write a Stored Procedure in SQL Server
          Suppose there is a table called tbl_Students whose structure is given below:
                                                                                                                               Hide   Copy Code
           CREATE TABLE     tbl_Students
1 de 7                                                                                                                                       28/09/2016 2:10
Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...     http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
                [Studentid] [int] IDENTITY(1,1) NOT NULL,
                [Firstname] [nvarchar](200) NOT NULL,
                [Lastname] [nvarchar](200) NULL,
                [Email] [nvarchar](100) NULL
           )
          Support we insert the following data into the above table:
                                                                                                                        Hide   Copy Code
           Insert into tbl_Students (Firstname, lastname, Email)
            Values('Vivek', 'Johari', 'vivek@abc.com')
           Insert into tbl_Students (Firstname, lastname, Email)
            Values('Pankaj', 'Kumar', 'pankaj@abc.com')
           Insert into tbl_Students (Firstname, lastname, Email)
            Values('Amit', 'Singh', 'amit@abc.com')
           Insert into tbl_Students (Firstname, lastname, Email)
            Values('Manish', 'Kumar', 'manish@abc.comm')
           Insert into tbl_Students (Firstname, lastname, Email)
            Values('Abhishek', 'Singh', 'abhishek@abc.com')
          Now, while writing a Stored Procedure, the first step will be to write the Create   Procedure statement as the first
          statement:
                                                                                                                        Hide   Copy Code
           Create Procedure Procedure-name
           (
           Input parameters ,
           Output Parameters (If required)
           )
           As
           Begin
                 Sql statement used in the stored procedure
           End
          Now, suppose we need to create a Stored Procedure which will return a student name whose studentid is given as the
          input parameter to the stored procedure. Then, the Stored Procedure will be:
                                                                                                                        Hide   Copy Code
           /*   Getstudentname is the name of the stored procedure*/
           Create    PROCEDURE Getstudentname(
           @studentid INT                           --Input parameter ,       Studentid of the student
           )
           AS
           BEGIN
           SELECT Firstname+' '+Lastname FROM tbl_Students WHERE studentid=@studentid
           END
          We can also collect the student name in the output parameter of the Stored Procedure. For example:
                                                                                                                        Hide   Copy Code
            /*
           GetstudentnameInOutputVariable is the name of the stored procedure which
           uses output variable @Studentname to collect the student name returns by the
           stored procedure
           */
           Create    PROCEDURE GetstudentnameInOutputVariable
           (
2 de 7                                                                                                                            28/09/2016 2:10
Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...     http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
           @studentid INT,                       --Input parameter , Studentid of the student
           @studentname VARCHAR(200) OUT         -- Out parameter declared with the help of OUT keyword
           )
           AS
           BEGIN
           SELECT @studentname= Firstname+' '+Lastname FROM tbl_Students WHERE studentid=@studentid
           END
          Note:-/* */ is used to write comments in one or multiple lines
          -- is used to write a comment in a single line
          How to Alter a Stored Procedure in a SQL Server
          In SQL Server, a stored procedure can be modified with the help of the Alter keyword. Now if we want to get student
          email address through the same procedure GetstudentnameInOutputVariable. So we need to modify it by adding
          one more output parameter "@StudentEmail " which is shown below:
                                                                                                                          Hide   Copy Code
           /*
           Stored Procedure GetstudentnameInOutputVariable is modified to collect the
           email address of the student with the help of the Alert Keyword
           */
           Alter    PROCEDURE GetstudentnameInOutputVariable
           (
           @studentid INT,                   --Input parameter , Studentid of the student
           @studentname VARCHAR (200) OUT,    -- Output parameter to collect the student name
           @StudentEmail VARCHAR (200)OUT     -- Output Parameter to collect the student email
           )
           AS
           BEGIN
           SELECT @studentname= Firstname+' '+Lastname,
               @StudentEmail=email FROM tbl_Students WHERE studentid=@studentid
           END
          Note: It is not necessary that a stored procedure will have to return. There can be a case when a stored procedure doesn't
          returns anything. For example, a stored procedure can be used to Insert, delete or update a SQL statement. For
          example, the below stored procedure is used to insert value into the table tbl_students.
                                                                                                                          Hide   Copy Code
           /*
           This Stored procedure is used to Insert value into the table tbl_students.
           */
           Create Procedure InsertStudentrecord
           (
            @StudentFirstName Varchar(200),
            @StudentLastName Varchar(200),
            @StudentEmail     Varchar(50)
           )
           As
            Begin
              Insert into tbl_Students (Firstname, lastname, Email)
              Values(@StudentFirstName, @StudentLastName,@StudentEmail)
            End
          Execution of the Stored Procedure in SQL Server
3 de 7                                                                                                                                 28/09/2016 2:10
Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...      http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
          Execution of the Stored Procedure which doesn't have an Output Parameter
          A stored procedure is used in the SQL Server with the help of the "Execute" or "Exec" Keyword. For example, if we want to
          execute the stored procedure "Getstudentname", then we will use the following statement.
                                                                                                                           Hide   Copy Code
           Execute Getstudentname 1
           Exec Getstudentname 1
          Execution of the Stored Procedure using the Output Parameter
          If we want to execute the Stored procedure "GetstudentnameInOutputVariable" , then we first need to declare the
          variable to collect the output values. For example:
                                                                                                                           Hide   Copy Code
           Declare @Studentname as nvarchar(200)   -- Declaring the variable to collect the Studentname
           Declare @Studentemail as nvarchar(50)     -- Declaring the variable to collect the Studentemail
           Execute GetstudentnameInOutputVariable 1 , @Studentname output, @Studentemail output
           select @Studentname,@Studentemail      -- "Select" Statement is used to show the output from
           Procedure
          Summary
          In the end, we can say that a Stored procedure not only enhances the possibility of reusing the code and execution plan, but it
          also increases the performance of the database by reducing the traffic of the network by reducing the amount of information
          sent over the network.
          License
          This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
          Share
                   EMAIL              TWITTER
          About the Author
                                                Vivek Johari
                                                                  Technical Lead
                                                                  India
          I am currently working as a Analyst and have around 7.5 years of experience in database.
          Degree:-
          Master Degree in Computer(MCA)
4 de 7                                                                                                                               28/09/2016 2:10
Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...      http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
          Work experience:-
          Designing of the database.
          Database Optimization.
          Writing Complex Stored Procedures,Functions,Triggers etc.
          Designing and developing SSIS & DTS packages.
          Designing SQL Reports using SSRS.
          Database Server Maintenance.
          Certification:-
          Microsoft certified Sql DBA in Sql server 2008 (MCTS).
          Microsoft certified BI professional in Sql server 2008 (MCTS).
          Oracle certified profession DBA in ORACLE 10g (OCP)
          certified profession DBA in ORACLE 9i (OCP)
          My other publication
          Technical Blog:- Technologies with Vivek Johari
          Moderator and Blogger at BeyondRelational.com
          Guest Author and Blogger at sqlservercentral.com
              You may also be interested in...
                                  Overview of SQL Server Stored                      Pro      Big Data: Why Transaction
                                  Procedure                                                   Data is Mission Critical to
                                                                                              Success
                                  Stored Procedure Generator                                  Microsoft Data Science Virtual
                                  For SQL Server                                              Machine for Windows and
                                                                                              Linux now available
                        Pro       Value of Database Resilience:                               Deep Learning on Windows: A
                                  Comparing Costs of Downtime                                 Getting Started Guide
                                  for IBM DB2 10.5 and
                                  Microsoft SQL Server 2014
          Comments and Discussions
                         You must Sign In to use this message board.
                                                                           Search Comments                                       Go
                                                   Profile popups    Spacing Relaxed   Layout Normal          Per page 25     Update
                                                                                                                    First Prev Next
               Thanks                                                                 Member 12173401                  31-Jul-16 0:36 
5 de 7                                                                                                                          28/09/2016 2:10
Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...    http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
              Thank                                                                 Member 12173401                  31-Jul-16 0:36 
              Short and clear                                                       Member 8648152                   26-Jul-16 1:11 
              Thank You                                                             Member 12613361                30-Jun-16 20:33 
              My vote of 5                                                          Kasar_7                         29-Jun-16 2:46 
              Hi, i 'm new to asp.net. now i'm trying to do a project               Member 12393172                 15-Mar-16 0:33 
              something related to mail access. here in global.asax
              page i got some error. someone please help me to
              solve this.
              My vote of 5                                                          AnantPithadiya                   1-Jan-16 0:08 
              reply                                                                 Musheer Ali TM                  6-Sep-15 19:07 
                   Re: reply                                                        Vivek Johari                     6-Sep-15 20:30 
              thanks                                                                abb4s                            6-Jun-15 9:19 
                   Re: thanks                                                       Vivek Johari                      9-Jun-15 6:45 
              Good Suggestion                                                       Member 11664765                4-May-15 20:29 
                   Re: Good Suggestion                                              Vivek Johari                      9-Jun-15 6:45 
              Thank you                                                             Pr!y@                           20-Feb-15 8:24 
                   Re: Thank you                                                    Vivek Johari                      9-Jun-15 6:44 
              Great article but you should use "return" instead of                  MadhureshK                       8-Oct-14 2:45 
              "written"
                   Re: Great article but you should use "return" instead of         ManojSridhar91                   19-Mar-15 1:36 
                   "written"
                   Re: Great article but you should use "return" instead of         Vivek Johari                   24-Mar-15 21:46 
                   "written"
              This extremely simplistic useless article                             PokemonCraft                  24-Aug-14 13:55 
                   Re: This extremely simplistic useless article                    Vivek Johari                     24-Mar-15 2:12 
              Methods of Writing Appllication                                       Member 10977161                  1-Aug-14 4:27 
                   Re: Methods of Writing Appllication                              Akhil Mittal                    3-Aug-14 23:17 
              Use of Output parameters                                              Ajay Shedge                      21-Jul-14 2:15 
              output parameter with WITH                                            Member 10949365                 15-Jul-14 18:48 
              --                                                                    Member 10904598                  10-Jul-14 0:54 
           Last Visit: 31-Dec-99 18:00     Last Update: 26-Sep-16 14:32                       Refresh            1 2 3 4 Next »
6 de 7                                                                                                                        28/09/2016 2:10
Sql Server - How To Write a Stored Procedure in SQL Server - CodePr...             http://www.codeproject.com/Articles/126898/Sql-Server-How-To-Writ...
              General        News         Suggestion          Question        Bug            Answer       Joke        Praise       Rant        Admin   
          Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.
          Permalink | Advertise | Privacy | Terms of Use | Mobile    Layout: fixed | fluid                          Article Copyright 2010 by Vivek Johari
          Web02 | 2.8.160919.1 | Last Updated 12 Nov 2010                                            Everything else Copyright © CodeProject, 1999-2016
7 de 7                                                                                                                                             28/09/2016 2:10