Stored Procedure in SQL Server
Written By:- Isha MalhotraWhat is Stored Procedure
The stored procedure is a set of SQL Statements. In stored procedure we can accept the input and return the output. It is pre compiled object. Stored procedure increases the performance of the database as they are pre compiled.
Syntax of Stored Procedure
Create procedure Proc_Name
As
Begin
SQL Statements
End
Example of Stored Procedure
Following is a procedure in which we select the data from table student
Create proc Proc_Select
As
Begin
Select * from student;
End
To execute the procedure We have to run the following command:-
Execute Proc_name
After running this procedure you came to know how procedure create and run. Now let’s move the parameterized procedure
Parametrized Stored Procedure
The parameter can be both input and output. If you are The programmer then remembers how you create your function in your programming Language. Yes, same we create here.
Example of Parametrized procedure
Suppose we want to create a procedure for insert in The table. We need data to insert in the table which will be passed to the Procedure through parameters.
create proc Proc_insert1 (@id int, @name varchar (100), @course varchar(100), @fees int)
as
begin
insert into student values(@id, @name, @course, @fees);
end
To Execute this statement
exec Proc_insert 1,'neha', 'php', 6000
Procedure with output parameter
Suppose we want to show the max Salary. If we simply creates procedure to show salary (without output parameter), Then we cannot use this output in future. If we want to use this output outside the procedure, in this case we have to create procedure without Parameter.
For example
create proc porc_maxsal(@sal int out)
as
begin
select @sal=MAX(salary) from Emp;
end
Execution of this procedure
declare @salary int
exec porc_maxsal @salary out;
select @salary
To execute this procedure we first have to declare the output variable which will hold the output. After execution we can use this @salary output in the next query or we can pass it to another procedure too.
Procedure with Return Value
In the above example we pass output parameter to the procedure and hold output in this variable. In the following example we didn’t pass any variable into the procedure. Infect procedure will return the output(as we use function in out programming language like c, Java)
For Example
create proc porc_MaxSalWithRet
as
begin
declare @sal int
select @sal=MAX(salary) from Emp;
return @sal;
end
Execution of this procedure
declare @salary int
exec @salary=porc_MaxSalWithRet;
select @salary
Calling procedure from another Procedure
As we create porc_MaxSalWithRet above. Now we are creating another procedure which will execute porc_MaxSalWithRet inside it and use its output.
create proc porc_ProcInProc
as
begin
declare @salary int
exec @salary=porc_MaxSalWithRet;
select * from emp where salary=@salary;
end
exec porc_ProcInProc