SQL Server 之 StoredProcedure預存程序 與 Trigger觸發程序 用法記錄

發表日期 : 3/26/2017 1:46:07 PM

StoredProcedure預存程序


CREATE PROCEDURE [dbo].[M_C_Page_Test]
    @author varchar(50) = '莊英澔'  -- 使用預設值參數,使用方式: EXEC [M_C_Page_Test] @author = 'XXX'
 AS
BEGIN
 Select title, summary, author, test_date,hit_no
 from Test
 where author like @author
END

Trigger觸發程序 - For | AFTER

CREATE TRIGGER M_C_Page_Test
   ON  Test
   AFTER DELETE
AS 
   IF EXISTS (Select * From Test_Talk
              where test_id = (select id from deleted))

BEGIN
    raiserror('不可刪除已有留言之文章',1,1)
    rollback rtun
END
GO

Trigger觸發程序 - INSTEAD OF

--IF條件檢查欲新增之文章標題是否已經存在,如果存在,就是更新資料;否則是插入新資料。

CREATE TRIGGER [dbo].[InsteadOf_Trigger]
   ON [dbo].[Test]
   INSTEAD OF Insert
AS 
BEGIN
    IF EXISTS (Select * from Test where title = (select title from inserted))
    BEGIN
        Update Test
        set Test.summary = inserted.summary,
        Test.article = inserted.article
        From Test JOIN inserted
        On Test.title = inserted.title
        Print '更新一筆資料'
    END
ELSE
    BEGIN
     Insert into Test(test_date,test_time,class,title ,summary
      ,article,author,hit_no,get_no,email_no,approved)
     Select test_date,test_time,class,title,summary ,article
      ,author,hit_no,get_no,email_no,approved 
        From inserted
     Print '新增一筆資料'
    END
END

分類 : 研究 作者 : 莊英澔

讀者留言


尚未有留言