WEB开发网
开发学院数据库MSSQL Server 如何利用存储过程和触发器来管理数据 阅读

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

 2007-10-29 09:49:56 来源:WEB开发网   
核心提示: ENCRYPTION〓〓加密syscomments表的内容,syscomments表中包含CREATEPROCedure的文本,如何利用存储过程和触发器来管理数据(3),保证无论何时都不删除syscomments表,sql_statementw是在表的内容有修改(UPDATE)时引起的动作

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

三、应用实例介绍

以下给出的程序段功能为:在前台Delphi环境下调用存储过程,在服务器由表dbo.all选出符合用户身份的记录生成表dbo.today;由触发器删除部分不合日期要求的记录;再从前台用批量记录移动把dbo.today的内容下载的本地LOCALDATA数据库上data.dbf表。

{在服务器的MYDATA数据库上创建存储过程my_store_prol:}

  CREATE PROCDURE my_store_prol
  @secu_id int
  AS
  SELECT*FROM all
  WHERE my_table1.no1<=@secu_id
  GO
  {在MYDATA数据库的表dbo.today上创建触发器:}
  CREATE TRLGGER add_no
  ON today
  FOR INSERT
  AS
  DELETE*FORM today
  WHERE riqi  GO

{在前台程序中执行存储过程my_store_prol:}

  Databasel.AliasName:='MYDATA';
  Databasel.DatabaseName;='my_database';
  Database1.connected;=True;
  SourceTable1.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,'secu_id',ptInput);
  StoredProc1.Prepare;
  StoredProc1.ExecProc;

{在前台程序中下载dbo.today的内容到data.dbf表:}

 Database2.AliasName:='LOCALDATA';
  Database2.DatabaseName:='local_data';
  Database2.connectde:=True;
  DestinTable1.DatabaseName:='local_data';
  DestinTable1.TableName:='data.dbf;
  DestinTable1.Active:=True;
  BatchMovel.Mode:=batAppend;
  BatchMovel.RecordCount:=0
  BatchMovel.Source:=SourceTable1;
  BatchMovel.Destination:=DestinTable1;
  BatchMovel.Execute;

上一页  1 2 3 

Tags:如何 利用 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接