牛腩新聞發佈系統後臺知識點總結------觸發器與儲存過程

前言:
牛腩新聞發佈系統是用ASP.net動態網頁語言 編寫的前臺,後臺是用的還是c#的類庫作爲後臺的邏輯封裝。和之前的區別是之前是桌面應用,這個是網頁端應用。從架構上的區分爲:c/s架構和b/s架構,一個是客戶端和服務器,另一個是客戶瀏覽器和服務器。
觸發器:
概念:
簡單來說觸發器就相當於窗體程序裏的一個事件,比如單擊事件,雙擊事件等等(只不過觸發器只有三種事件,插入,刪除和更新)~~和這個功能一樣,每當觸發這個事件都會執行事件裏提前寫好的代碼體,只不過這是在SqlServer裏執行提前設置好的sql語句而已。‘’
代碼:

USE [newssystem]
GO
/****** Object:  Trigger [dbo].[trigCategoryDelete]   
 Script Date: 2020/4/28 19:18:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		康世行
-- Create date: 2020-4-16 10:12:32
-- Description:	刪除類別觸發器
-- =============================================
CREATE TRIGGER [dbo].[trigCategoryDelete]
   ON  [dbo].[category]
  instead of  DELETE
AS 
BEGIN
 declare @caId int 
 select @caId=id from deleted
 --刪除評論(因爲評論和新聞是一對多所以用in)
 delete comment where newsId in (select newsId from news 
 where caId=@caId)
 --刪除新聞
 delete news where caId=@caId
 --刪除類別
 delete category where id=@caId
END

儲存過程:
概念
存儲過程(Stored Procedure)是在大型數據庫系統中,一組爲了完成特定功能的SQL 語句集,它存儲在數據庫中,一次編譯後永久有效,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象。在數據量特別龐大的情況下利用存儲過程能達到倍速的效率提升
創建儲存過程代碼:

USE [newssystem]
GO
/****** Object:  StoredProcedure [dbo].[news_insert] 
   Script Date: 2020/4/28 19:27:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		康世行
-- Create date: 2020-4-21 09:28:10
-- Description:	增加新聞
-- =============================================
ALTER PROCEDURE [dbo].[news_insert]
@title varchar(100),
@content text,
@createTime datetime,
@caId int
AS
BEGIN
  INSERT INTO news (title, [content],createTime, caId)
  VALUES (@title,@content,@createTime,@caId)
END

兩者之間區別:

   觸發器有三種事件分別是:插入,刪除,更新。每當發生這三種操作中的
  其中一種,觸發器就會響應相應的操作。而儲存過程沒有這些對應的事件
  ,只是一個sql語句的集合而已。裏面儲存了比較複雜的sql語句方便使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章