存儲過程語法?創(chuàng)建存儲過程,需要有CREATE PROCEDURE或CREATE ANY PROCEDURE的權(quán)限? ?刪除存儲過程,是過程的創(chuàng)建者或者擁有DROP ANY PROCEDURE權(quán)限?修改存儲過程,那么,存儲過程語法?一起來了解一下吧。
---判斷是否存在存儲過程
if exists( select name from sysobjects where name='proc_name' )
drop proc proc_name
go
---創(chuàng)建存儲過程
createprocproc_name
@parametervarchar(20),
@parameter2int
as
主體語句
go
if exists:判斷是否存在
drop proc :刪除存儲過程,后面接存儲過程名稱,名稱不用引起來
create proc: 創(chuàng)建存儲過程,后面接存儲過程名稱,名稱不用引起來
@parametervarchar(20): 參數(shù),在執(zhí)行存儲過程的時候需要傳入的參數(shù),這里是字符類型,如果有多個參數(shù)的話,除了最后一個參數(shù),其他的參數(shù)后面需要加逗號(英文狀態(tài)),如果不需要傳入,直接去掉就行了。
createprocproc_name
as
主體語句
go
as : 關(guān)鍵字
主體語句:就是你要做的操作的語句,和平時的完全一樣,存儲過程就相當(dāng)把平時的sql語句在外面加了個殼的感覺。比如這里你需要查詢一個表select * from tableName1 那么這里就這樣寫
createprocproc_name
as
select * from tableName1
go
傳參數(shù):
createprocproc_name
@parametervarchar(20)
as
select * from tableName where name=@parameter
go
執(zhí)行的時候這樣
execproc_name '小明'
其他的操作都是這樣的。
這里以創(chuàng)建名為 GetStuCou 的無參數(shù)存儲過程為例:
create procedure GetStuCou
as
begin//開始存儲過程
select *from Studentsleft join Course c on s.C_S_Id=c.C_Id
end//結(jié)束存儲過程
下面是存儲過程的其他用法:
--創(chuàng)建存儲過程
CREATE PROCEDURE PROC(后面接類型)
--定義變量--簡單賦值
declare @a intset @a=5 print @a
--使用select語句賦值
declare @user1 nvarchar(50)
select @user1='張三'
print @user1
declare @user2 nvarchar(50)
--創(chuàng)建臨時表1 create table #DU_User1
(
[ID] [int] NOT NULL,
[Oid] [int] NOT NULL,
);
--定義一個游標(biāo)
declare user_cur cursor for select ID,Oid,[Login] from ST_User
--打開游標(biāo)
open user_cur
while @@fetch_status=0 begin
--讀取游標(biāo)
fetch next from user_cur into @ID,@Oid,@Login
print @ID
--print @Login
end
close user_cur
擴展資料:
創(chuàng)建存儲過程的注意事項:
1、保持事務(wù)簡短,事務(wù)越短,越不可能造成阻塞。
sql server存儲過程語法
存儲過程就是作為可執(zhí)行對象存放在數(shù)據(jù)庫中的一個或多個SQL命令。
定義總是很抽象。存儲過程其實就是能完成一定操作的一組SQL語句,只不過這組語句是放在數(shù)據(jù)庫中的(這里我們只談SQL Server)。如果我們通過創(chuàng)建存儲過程以及在ASP中調(diào)用存儲過程,就可以避免將SQL語句同ASP代碼混雜在一起。這樣做的好處至少有三個:
第一、大大提高效率。存儲過程本身的執(zhí)行速度非常快,而且,調(diào)用存儲過程可以大大減少同數(shù)據(jù)庫的交互次數(shù)。
第二、提高安全性。假如將SQL語句混合在ASP代碼中,一旦代碼失密,同時也就意味著庫結(jié)構(gòu)
/*例8-2 創(chuàng)建一個存儲過程,以簡化對sc表的數(shù)據(jù)添加工作,使得在執(zhí)行該存儲過程時,其參數(shù)值作為數(shù)據(jù)添加到表中*/
/*程序清單如下*/
CREATE PROCEDURE [dbo].[ pr1_sc_ins]
@Param1 char(10),@Param2 char(2),@Param3 real
AS
BEGIN
insert into sc(sno,cno,score) values(@Param1,@Param2,@Param3)
END
/*例8-7使用 EXECUTE 命令傳遞參數(shù),執(zhí)行例8-2定義的存儲過程pr1_sc_ins*/
/*程序清單如下*/
EXECpr1_sc_ins '3130010211','c1',85
go
/*或在執(zhí)行過程中變量用顯式命名*/
EXEC pr1_sc_ins @Param1='3130010211',@Param2='c1', @Param3=85
MySQL教程4 MySQL8運算符、函數(shù)、存儲過程及新增數(shù)據(jù)類型 17.之創(chuàng)建帶有IN和OUT參數(shù)的存儲過程 學(xué)習(xí)猿地
以上就是存儲過程語法的全部內(nèi)容,---創(chuàng)建存儲過程 create proc proc_name parameter varchar(20),parameter2 int as 主體語句 go if exists:判斷是否存在 drop proc : 刪除存儲過程,后面接存儲過程名稱。