如何利用存储过程和触发器来管理数据库 (3)
2011-10-17 15:35
281 查看
如何利用存储过程和触发器来管理数据库 (3)
以下须是一个独立的查询模块,因为CREATE PROCDURE语句须是查询模块的首行。
触发器是一种特殊的存储过程,无论何时要对它所保护的表进行修改时它就自动执行。触发器由SQL Server自动执行,不能由应用程序调用,便于保护数据库的完整性和完全性。其语法结构为:
ENCRYPTION〓〓加密syscomments表的内容,syscomments表中包含CREATEPROCedure的文本,保证无论何时都不删除syscomments表,sql_statementw是在表的内容有修改(UPDATE)时引起的动作以下是一个修改触发器,如果my_tabel的nolmy_table1字段有修改,给出错误提示。
以下插入触发器在TITLE_L有数据增加时,给末对NO_LOCAL赋值的记录赋值,其值是现有记录中NO_LOCAL的最大值加1(NO_LOCAL为字符串类型)
以下须是一个独立的查询模块,因为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 |
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 |
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 |
相关文章推荐
- 如何利用存储过程和触发器来管理数据库 (1)
- 如何利用存储过程和触发器来管理数据库 (2)
- 如何利用存储过程和触发器来管理数据库 (4)
- 利用存储过程和触发器来管理数据库
- 如何利用存储过程和触发器来管理数据
- 第33章 利用存储过程和触发器进行管理
- 利用Java存储过程简化数据库操作
- 【数据库】如何调试sql语句、存储过程——PLSQL、VS
- 设计案例3----利用存储过程和JOB 设计从餐饮ERP数据库将数据抽取、数据清洗到BI数据库
- 如何利用SQLyog数据库管理工具生成各表的关系视图
- 如何用SQL语句在两个数据库间复制存储过程
- 利用存储过程来提高数据库的更新问题
- 如何利用 Essentials for Python 轻松管理 CaDS 资源存储库
- 利用数据库的存储过程生成java的formbean对象
- 利用系统存储过程附加数据库
- 利用反射传输存储过程参数,在mssql和mysql两种数据库中存在的问题
- ------如何用语句在两个数据库之间复制存储过程----
- 如何查询数据库中的所有触发器、储存过程、视图、表
- 如何使用Sybase ASE数据库的扩展存储过程?
- mysql里的批处理(sql语句)、触发器、事务管理、存储过程