The syntax of the stored procedure:
CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY] ] [ ,...n ] [ WITH[ ,...n ] ] [ FOR REPLICATION ] AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] } [;] ::= [ ENCRYPTION ] [ RECOMPILE ] [ EXECUTE AS Clause ]
For more on syntax see here
Stored procedures are similar to procedures in other programming languages in that they can:
-Accept input parameters and return multiple values in the form of output parameters to the calling procedure or batch.
-Contain programming statements that perform operations in the database, including calling other procedures.
-Return a status value to a calling procedure or batch to indicate success or failure (and the reason for failure).
Example 1 of stored procedure
Below is a simple stored procedure
Create Procedure dbo.my_first_sp As select * from Employees GoAfter writing the above text select it and press F5 in SQL Server. This stored procedure will be added under stored procedures(I am currently working with Northwind Database. Under Northwind Database, expand Programmability and expand stored procedures, you will see this new stored procedure my_first_sp).
In order to run it. Simply type
my_first_sp Select it and press F5 or type Exec my_first_sp Select it and press F5.
Example 2 of stored procedure
Below is a simple stored procedure to show the employees by title of courtesy (Mr., Mrs., Dr. etc)
Create Procedure dbo.empbytitleofcourtesy @toc nvarchar(5) As select * from Employees where TitleOfCourtesy = @toc Go
Once you create this stored procedure, run it (select it and press F5). This stored procedure will be added under stored procedures(I am currently working with Northwind Database. Under Northwind Database, expand Programmability and expand stored procedures, you will see this new stored procedure empbytitleofcourtesy).
To run this stored procedure type:
Exec dbo.empbytitleofcourtesy 'Dr.'
And press F5.
We are passing one parameter ‘Dr.’(We want to see all employees who are doctors) to the stored procedure.
Example 3 of stored procedure
A simple stored procedure with 2 parameters
Create Procedure dbo.sp_two_parameters @fn varchar(20), @ln varchar (20) As select * from Employees where FirstName = @fn and LastName = @ln Go
Call the above stroed procedure as
sp_two_parameters 'Robert', 'King'
Example 4 of stored procedure
A simple stored procedure to insert rows into a table:
Create Procedure dbo.sp_insert @empid int, @nm varchar(20), @mng varchar(20) As Insert into employee values (@empid, @nm, @mng) Go
Call the above stroed procedure as
sp_insert 4, 'ddd', 3
Example 5 of stored procedure
Example of stored procedure returning value
Create procedure sp_oparam @eid int, @nm varchar(20) output As Begin Select @nm=Name from employee where Emp_id = @eid End Go DECLARE @Thename varchar(20) Exec sp_oparam 3, @nm=@Thename output select Thename = @Thename Go
Example 6 of stored procedure
Example of stored procedure returning 2 values
Create procedure sp_oparam @eid int, @nm varchar(20) output, @mngr int output As Begin Select @nm=Name, @mngr=Manager from employee where Emp_id = @eid End Go DECLARE @Thename varchar(20), @Themanager int Exec sp_oparam 2, @nm=@Thename output, @mngr=@Themanager output select Thename = @Thename select Themanager = @Themanager Go
Example 7 of stored procedure
Another way to get data back from a stored procedure is by using Return. It only returns a single numeric value. Mostly this is used to return a status result or error code.
Alter procedure sp_ret @Mid int As Begin DECLARE @RetVal INT Select @RetVal=Emp_id from employee Where Manager = @Mid if @RetVal = 4 Begin Return 1 End
End
DECLARE @ReturnValue int
Exec @ReturnValue = sp_ret 3
select ReturnValue=@ReturnValueAltering Stored Procedure
You alter stored procedure with ALTER PROCEDURE command. Advantage of using ALTER PROCEDURE to change a stored procedure is that it preserves access permissions, whereas CREATE PROCEDURE doesn't. A key difference between them is that ALTER PROCEDURE requires the use of the same encryption and recompile options as the original CREATE PROCEDURE statement.
Example 8 of stored procedure
Below is a simple example of stored procedure
CREATE procedure [dbo].[sp_willbechanged] @eid int As Begin Select Name, Manager from employee where Emp_id = @eid EndCall the above stored procedure for example like below:
sp_willbechanged 2
Now if you want to modify the stored procedure and show only the Name and NOT Manager, you will do as below:
Alter procedure [dbo].[sp_willbechanged] @eid int As Begin Select Name from employee where Emp_id = @eid End
You will still continue to call this as you called the above one.Example 9 of stored procedure
Below is an example of how to call one stored procedure from another stored procedure.
CREATE procedure [dbo].[sp_oparam1] @eid int, @nm varchar(20) output As Begin Select @nm=Name from employee where Emp_id = @eid End GO Alter procedure [dbo].[sp_calloparam1] @eid1 int As Begin DECLARE @Thename varchar(20) Exec sp_oparam1 @eid1, @nm=@Thename output If @Thename = 'aaa' Begin Return 5 End End Go Call sp_calloparam1 like below: DECLARE @ReturnValue INT EXEC @ReturnValue = sp_calloparam1 3 SELECT ReturnValue=@ReturnValue
How to list the source code of stored procedure?
Use sp_helptext to list the source code of the stored procedure.
How to find the creation and modification date of stored procedure?
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'P' AND name = 'sp_willbechanged'
Result:
Name Create_date Modify_date sp_willbechanged 2011-06-13 09:12:17.747 2011-06-13 09:15:27.123
No comments:
Post a Comment