科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何利用存储过程和触发器来管理数据库

如何利用存储过程和触发器来管理数据库

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要介绍如何在数据库后台利用存储过程,触发器来管理数据库的技术,并以Delphi做前台,SQL Server做后台的模式给出具体的实现代码。

作者:赛迪网 tongnian 来源:天新网 2008年4月22日

关键字: SQL Server SQL Mssql 数据库

  • 评论
  • 分享微博
  • 分享邮件

以下须是一个独立的查询模块,因为CREATE PROCDURE语句须是查询模块的首行。

  CREATE PROCDURE my_store_pro1
  @my_paral char,
  @my_para2 int
  AS
  SELECT*FROM my_table1
  WHERE my_table1.no1=@my_para1
  AND my_table.1no2<=@my_para2
  GO
  执行存储过my_store_pro1
  EXEC my_store_pro1'12',23

触发器是一种特殊的存储过程,无论何时要对它所保护的表进行修改时它就自动执行。触发器由SQL Server自动执行,不能由应用程序调用,便于保护数据库的完整性和完全性。其语法结构为: 

  CREATE TRIGGER [owner.]trigger_name
  ON[owner.]table_name
  FOR {INSERT,UPDATE,DELETE}
  [WITH ENCR YPTION]
  AS
  IF UPDATE(column_name)
  [{AND|OR}UPDATE(column_name)...]sql_statements
  其中:
  trigger_name〓〓指定触发器的名称
  table_name〓〓指定触发器所在的表名
  INSERT,UPDATE,DELETE〓〓指定触发条件

ENCRYPTION〓〓加密syscomments表的内容, syscomments表中包含CREATEPROCedure的文本,保证无论何时都不删除syscomments表,sql_statementw是在表的内容有修改(UPDATE)时引起的动作以下是一个修改触发器,如果my_tabel的nolmy_table1字段有修改,给出错误提示。

  CREATE TRIGGER test
  ON my_tablel
  FOR UPDATE
  AS
  IF UPDATE(nol)
  BEGIN
  PRINT(不能修改此列数据’)
  END

 以下插入触发器在TITLE_L有数据增加时,给末对NO_LOCAL赋值的记录赋值,其值是现有记录中NO_LOCAL的最大值加1(NO_LOCAL为字符串类型)

  CREATE TRIGGER add_no
  ON TITLE_L
  FOR INSERT
  AS
  DECLARE @tmpl int
  SELECT @tmpl=MAX(CONVERT(int,NO_LOCAL))FROM TITLB_L
  SELECT @tmpl=@tmpl+1
  DECLARE @tmpstr char(4)
  SELECT @tmpstr=CONVERRT(varchar(4),@tmpl)
  UPDATE TITLE_L
  SET NO_LOCAL=@tmpstr WHERE NO_LOCAL=NULL

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章