存储过程(stored procedure)
一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
1.新建自己的存储过程
create procedure spPerson_GetAll
as
begin
select id,FirstName,LastName
from Person;
end
其中的spPerson_GetAll为存储过程的名称,begin和end中间的就是我们需要执行的SQL 语句。
2.修改存储过程,把create换成alter即可
alter procedure spPerson_GetAll
as
begin
--不输出受影响行数
set nocount on;
select id,FirstName,LastName,EmailAddress
from Person;
end
其中的set nocount on可以指示是否需要输出受影响行数的信息。
3.执行存储过程
exec spPerson_GetAll;
4.新建一个带单个参数的存储过程
create procedure spPerson_GetByLastName
@lastname varchar(50)
as
begin
select id,FirstName,LastName,EmailAddress
from Person
where LastName=@lastname
end
用@接自己需要定义的参数,后面需要声明其类型。
调用的话:
--调用带参数的stored procedure
exec spPerson_GetByLastName @lastname='Ducket'
--也可以这样直接调用,多参数的时候按照顺序输入参数即可
exec spPerson_GetByLastName 'Ducket'
5.带多个参数的存储过程
alter procedure spPerson_GetByLastName
@lastname varchar(50),
@firstname varchar(50)
as
begin
select id,FirstName,LastName,EmailAddress
from Person
where LastName=@lastname and FirstName=@firstname
end
调用:
--调用
exec spPerson_GetByLastName @lastname='Ducket',@firstname='Stanley'
--也可以这样调用
exec spPerson_GetByLastName 'Ducket','Stanley'