牛腩新闻发布系统后台知识点总结------触发器与储存过程

前言:
牛腩新闻发布系统是用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语句方便使用
posted @ 2020-04-28 19:40  康世行  阅读(40)  评论(0编辑  收藏  举报