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...