欢迎来到天天文库
浏览记录
ID:9735186
大小:61.00 KB
页数:6页
时间:2018-05-07
《如何利用存储过程和触发器来管理数据--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、如何利用存储过程和触发器来管理数据>> 本文主要介绍如何在数据库后台利用存储过程,触发器来管理数据库的技术,并以Delphi做前台,SQLServer做后台的模式给出具体的实现代码。 一、SQL交互式数据库查询语言 交互式数据库查询语言SQL中有关表操作基本的SQL语句有如下四种:(下面分别出给四种语句的语法形式及其说明) (1)查询表命令SELECT[ALL
2、DISTINCT]select_list[INTO[nee]][FROM{table_name
3、viee}[]{table_name
4、viee}[YDATABASE数据库上创建存储过程my_
5、store_pro1 USEMYDATABASE 以下须是一个独立的查询模块,因为CREATEPROCDURE语句须是查询模块的首行。 CREATEPROCDUREmy_store_pro1 my_paralchar, my_para2int AS SELECT*FROMmy_table1 y_table1.no1=my_para1 ANDmy_table.1no2<=my_para2 GO 执行存储过my_store_pro1 EXECmy_store_pro1'12',23 触发器是一种特殊的
6、存储过程,无论何时要对它所保护的表进行修改时它就自动执行。触发器由SQLServer自动执行,不能由应用程序调用,便于保护数据库的完整性和完全性。其语法结构为: CREATETRIGGER[oe ON[oe FOR{INSERT,UPDATE,DELETE} [n_name) [{AND
7、OR}UPDATE(column_name)...]sql_statements 其中: trigger_name〓〓指定触发器的名称 table_name〓〓指定触发器所在的表名 INSERT,UPDATE,DELETE〓〓指定触发条件 ENC
8、RYPTION〓〓加密sysments表的内容,sysments表中包含CREATEPROCedure的文本,保证无论何时都不删除sysments表,sql_statementy_tabel的nolmy_table1字段有修改,给出错误提示。 CREATETRIGGERtest ONmy_tablel FORUPDATE AS IFUPDATE(nol) BEGIN PRINT(不能修改此列数据) END 以下插入触发器在TITLE_L有数据增加时,给末对NO_LOCAL赋值的记录赋值,其值是现有记录中NO_LOCAL的最大值加1
9、(NO_LOCAL为字符串类型) CREATE12下一页>>>>这篇文章来自..,。TRIGGERadd_no ONTITLE_L FORINSERT AS DECLAREtmplint SELECTtmpl=MAX(CONVERT(int,NO_LOCAL))FROMTITLB_L SELECTtmpl=tmpl+1 DECLAREtmpstrchar(4) SELECTtmpstr=CONVERRT(varchar(4),tmpl) UPDATETITLE_L SETNO_LOCAL=tmpstrYDATA数据库上创建
10、存储过程my_store_prol:} CREATEPROCDUREmy_store_prol secu_idint AS SELECT*FROMall YDATA数据库的表dbo.today上创建触发器:} CREATETRLGGERadd_no ONtoday FORINSERT AS DELETE*FORMtoday YDATA'; Databasel.DatabaseName;='my_database'; Database1.connected;=True; SourceTable
11、1.DatabaseName;='my_database'; SourceTable1.TableName='dbo.today'; SourceTable1.Active;=True; StoredProc1.DatabaseName;='My_database'; StoredProc1.StoredProcName:='my_proc'; StoredProc1.Params.Clear; StoredProc1.Params.CreateParam(ftInteger
此文档下载收益归作者所有