儲存過程學習1

2022-02-09 02:24:15 字數 1751 閱讀 9644

create proc  [dbo].[proc_addemail]

@sender char(36), --發件人

@subject varchar(255),--郵件主題

@addressee text,--收件人的工號/學號

@message text, --郵件的內容

@ispublic bit --郵件是否公共

asdeclare @error int              --定義錯誤物件

set @error=0

begin

begin tran

declare @mailid char(36),@maildate char(36)--郵件id、當前日期宣告

--郵件id、當前日期賦值 

set @mailid=newid()

set @maildate=getdate()  

insert

into dbo.tbl_mail(mailid,subject,maildate,fromid,[message],ispublic,recordstatus)

values(@mailid,@subject,@maildate,@sender,@message,@ispublic,'a')

set @error=@@error+@error

if @ispublic=1

begin

--插入學生使用者

insert

into tbl_mailinbox(mailid,userno,usertype,recordstatus) 

select @mailid, studentid,'2','a'

from tbl_student where recordstatus='a'

set @error=@@error+@error 

--插入老師使用者

insert

into tbl_mailinbox(mailid,userno,usertype,recordstatus) 

select @mailid, teacherid,'1','a'

from tbl_teacher where recordstatus='a'

set @error=@@error+@error 

endelse

begin

--插入學生使用者

insert

into tbl_mailinbox(mailid,userno,usertype,recordstatus) 

select @mailid, studentid,'2','a'

from tbl_student where recordstatus='a'

and charindex(studentid,@addressee)>0

set @error=@@error+@error 

--插入教師使用者

insert

into tbl_mailinbox(mailid,userno,usertype,recordstatus) 

select @mailid, teacherid,'2','a'

from tbl_teacher where recordstatus='a'

and charindex(teacherid,@addressee)>0

set @error=@@error+@error 

endif @error=0

commit

else

rollback

end

儲存過程學習1

受上級指示,該學學儲存過程了,現在開始,每天堅持學,直到學會。1 儲存過程和函式的資訊是寫入資料字典的,所以儲存過程可以看作是乙個公用模組,使用者編寫的pl sql程式或其他儲存過程都可以呼叫它 但儲存過程和函式不能呼叫pl sql程式 乙個重複使用的功能,可以設計成為儲存過程,比如 顯示一張工資統...

儲存過程的學習(1)

儲存過程的特點 1.儲存過程是預編譯過的,並且經過優化後儲存於sql記憶體中,使用時無需再次編譯,提高了工作效率。2.儲存過程的 直接存放於資料庫中,一般有客戶端直接通過儲存過程的名字進行呼叫,減少了網路流量,加快了系統執行速度,例如在進行百萬以上的大批量資料查詢的時,使用儲存過程分頁要比其他方式分...

儲存過程學習 1 認識

軟體 pl sql developer 1 新建sql視窗,輸入如下 create or replace procedure skeleton isbegin null end 儲存為skeleton.sql 2 新建命令視窗,輸入並執行 sql execute skeleton pl sql pr...