1、為什么要使用存儲過程 ?
過濾SQL語句中的非法字符,執行存儲過程比SQL語句快。
2、存儲過程能做什么
利用存儲過程插入數據、修改數據、刪除數據
3、實例
//所需數據
//在SQL Sever數據庫中創建表
create table tb_stu
(
stuNo int primary key,
stuName varchar(10) not null,
stuSex varchar(2) null,
stuAge int not null
)
insert into tb_stu values(1,'小張','男',18)
insert into tb_stu values(2,'小麗','女',17)
insert into tb_stu values(3,'小明','男',18)
/*利用存儲過程插入數據*/
/*@stuNo,@stuName,@stuSex,@stuAge與數據表對應所需的參數*/
create proc proc_InsertInfo
(
@stuNo int,
@stuName varchar(10),
@stuSex varchar(2),
@stuAge int
)
as
if exists(select*from tb_stu where stuNO=@stuNo)
return 0
else
begin
insert into tb_stu(stuNo,stuName,stuSex,stuAge)
values(@stuNo,@stuName,@stuSex,@stuAge)
return 1
end
go
/*調用存儲過程*/
execute proc_InsertInfo @stuNo=6,@stuName='子',@stuSex='男',@stuAge=18
/*利用存儲過程更改數據*/
create proc proc_updateInfo
(
@stuNo int,
@stuName varchar(10),
@stuSex varchar(2),
@stuAge int
)
as
if(@stuNo<>'')
update tb_stu set stuName=@stuName, stuSex=@stuSex,stuAge=@stuAge where stuNo=@stuNo
go
/*調用*/
execute proc_updateInfo @stuNo=1,@stuName='小李',@stuSex='女',@stuAge=17
/*利用存儲過程刪除數據*/
create proc proc_deleteInfo
(
@stuNo int
)
as
if(@stuNo<>'')
delete from tb_stu where stuNo=@stuNO go
/*調用*/
execute proc_deleteInfo @stuNo=6
/*更改存儲過程名稱*/
exec sp_rename 'proc_deleteInfo','proc_deleteStuInfo'
/*調用*/
execute proc_deleteStuInfo @stuNo=3
/*更改存儲過程*/
alter proc proc_updateInfo
(
@stuNo int,
@stuName varchar(10),
/*@stuSex varchar(2),*/
@stuAge int ) as
if(@stuNo<>'')
update tb_stu set stuName=@stuName,stuAge=@stuAge where stuNo=@stuNo
go
/*調用*/
execute proc_updateInfo @stuNo=2,@stuName='小高',@stuAge=18
/*如何查看當前數據庫未知存儲過程名稱*/
select name from sysobjects where xtype = 'P'