学习存储过程(1)
存儲(chǔ)過(guò)程說(shuō)白了就是一堆 SQL 的合并。中間加了點(diǎn)邏輯控制。
用戶自定義存儲(chǔ)過(guò)程create proc | procedure pro_name
[{@參數(shù)數(shù)據(jù)類型} [=默認(rèn)值] [output],
{@參數(shù)數(shù)據(jù)類型} [=默認(rèn)值] [output],
....
]
as
SQL_statements
創(chuàng)建存儲(chǔ)過(guò)程
Create procedure sp_name //sp_name 自己給存儲(chǔ)過(guò)程去的名稱
Begin
……
End
?
Create Proc dbo.存儲(chǔ)過(guò)程名
存儲(chǔ)過(guò)程參數(shù)
AS
執(zhí)行語(yǔ)句
RETURN
執(zhí)行存儲(chǔ)過(guò)程
GO
Eg:
-- 要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù)
Use Test
-- 判斷要?jiǎng)?chuàng)建的存儲(chǔ)過(guò)程名是否存在
if Exists(Select name From sysobjects Where name='csp_AddInfo' And
?
type='P')
-- 刪除存儲(chǔ)過(guò)程
Drop Procedure dbo.csp_AddInfo
Go
?
?
-- 創(chuàng)建存儲(chǔ)過(guò)程
Create Proc dbo.csp_AddInfo
-- 存儲(chǔ)過(guò)程參數(shù)
@UserName varchar(16),
@Pwd varchar(50),
@Age smallint,
@Sex varchar(6)
AS
-- 存儲(chǔ)過(guò)程語(yǔ)句體
insert into Uname (UserName,Pwd,Age,Sex)
values (@UserName,@Pwd,@Age,@Sex)
RETURN
-- 執(zhí)行
GO
?
-- 執(zhí)行存儲(chǔ)過(guò)程
EXEC csp_AddInfo 'Junn.A','123456',20,'男'
?
--創(chuàng)建存儲(chǔ)過(guò)程
if (exists (select * from sys.objects where name = 'proc_get_student'))
drop proc proc_get_student
go
create proc proc_get_student
as
select * from student;
--調(diào)用、執(zhí)行存儲(chǔ)過(guò)程
exec proc_get_student;
?
存儲(chǔ)過(guò)程說(shuō)白了就是一堆 SQL 的合并。中間加了點(diǎn)邏輯控制。
存儲(chǔ)過(guò)程運(yùn)行流程
創(chuàng)建不帶參數(shù)存儲(chǔ)過(guò)程
--創(chuàng)建存儲(chǔ)過(guò)程
if (exists (select * from sys.objects where name = 'proc_get_student'))
drop proc proc_get_student
create proc proc_get_student
as
select * from student;
結(jié)果:
?
--調(diào)用、執(zhí)行存儲(chǔ)過(guò)程
exec proc_get_student;
查詢結(jié)果:
?
帶參存儲(chǔ)過(guò)程
if (object_id('proc_find_stu', 'P') is not null)
drop proc proc_find_stu
go
create proc proc_find_stu(@startId int, @endId int)
as
select * from student where id between @startId and @endId
go
exec proc_find_stu 2, 4;
執(zhí)行結(jié)果:
2 趙姳 17 男
3 張曼 18 女
4 張立 19 女
?
轉(zhuǎn)載于:https://www.cnblogs.com/guangzhou11/p/9025132.html
總結(jié)
- 上一篇: 新技能get!判断盒子的实际大小及位置。
- 下一篇: ElasticSearch 5.5 离线