`

SQL Server 触发器的使用实例 jackey

阅读更多


SQL Server 触发器的使用实例

定义:
触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。Microsoft? SQL Server? 允许为任何给定的 Insert、Update 或 Delete 语句创建多个触发器。

基本语法:(帮助里的语法太长了)
Create Trigger [TriggerName]
ON [TableName]
FOR [Insert][,Delete][,Update]
AS
--触发器要执行的操作语句.
Go

注意:
触发器中不允许以下 Transact-SQL 语句:
Alter DATABASE ,Create DATABASE,DISK INIT,
DISK RESIZE, Drop DATABASE, LOAD DATABASE,
LOAD LOG, RECONFIGURE, RESTORE DATABASE,
RESTORE LOG
 

 

 

--触发器使用实例: jackey 2007.07.13
--程序代码


--1.) 创建测试用的表(testTable)
if exists (select * from sysobjects where id = object_id(N'testTable') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table testTable
GO
Create Table testTable(testField varchar(50))


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[showOperater]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[showOperater]
GO

CREATE TABLE [dbo].[showOperater] (
 [id] [int] IDENTITY (1, 1) NOT NULL ,
 [content] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

 

--2.) 创建基于表(testTable)的触发器(testTrigger)
IF EXISTS (Select name FROM sysobjects Where name = 'testTrigger' AND type = 'TR')
Drop TRIGGER testTrigger
GO
Create Trigger testTrigger
ON testTable
FOR Insert,Delete,Update
AS
if exists(select * from inserted)
  begin
     if exists(select * from deleted)
       insert into showOperater values('更新记录');
     else
       insert into showOperater values('插入记录');
  end
else
  begin
    if exists(select * from deleted)
    insert into  showOperater values('删除记录');
  end
Go


--3.) 操作testTable表,测试触发器testTrigger
--分别执行Insert Into语句,Update语句,Delete语句,看看效果
Insert Into testTable values ('testContent!')

Update testTable Set testField = 'UpdateContent'

Delete From testTable

select * from showOperater
truncate table showOperater

分享到:
评论

相关推荐

    将sql server中的数据倒入Excel(c#)

    本文将详细介绍如何使用C#编程语言从SQL Server数据库中提取数据,并将其导入到Microsoft Excel中。此方法相较于SQL Server内置的数据转换服务(DTS)更为灵活,特别是在报表开发场景下。下面将逐步介绍实现这一功能...

    SQL 函数 字段内容更新插入

    在SQL(Structured Query Language)中,函数是处理和操作数据的强大工具,它们允许...在实际应用中,根据具体的数据库系统(如MySQL、SQL Server、Oracle等),函数和语法可能略有不同,需要参考相应的数据库文档。

    Oracle中动态SQL详解

    接下来,我们通过一个具体的例子来说明如何在Oracle中使用动态SQL进行表的操作和数据查询。 假设有一个员工表`emp`,包含字段`ID`、`NAME`和`SALARY`。 1. **创建表**:首先使用动态SQL创建这个表。 ```sql ...

    DELPHI +SQL2000 一卡通停车场系统虚拟人事资料TOOL 含源代码

    标题中的“DELPHI + SQL2000 一卡通停车场系统虚拟人事资料TOOL 含源代码”表明这是一个基于DELPHI编程语言和SQL Server 2000数据库开发的一卡通停车场管理系统,并且提供了虚拟人事资料的工具,同时附带了源代码。...

    DELPHI操作数据库_向特定表插入数据 DelPhi +SQL2000 含源码

    Delphi是一款强大的对象 Pascal 编程工具,常用于构建桌面应用程序,而Microsoft SQL Server 2000则是一个广泛使用的数据库管理系统。本教程将深入探讨如何使用Delphi与SQL Server 2000配合,实现向特定表插入数据的...

    随便写的代码-jacky

    ### SQL语句:创建表与主键定义 #### 创建表 `dc`: ```sql CREATE TABLE dc ( tid NUMBER(10) NOT NULL, tname VARCHAR(10), taddress VARCHAR(10), PRIMARY KEY (tid) USING INDEX ); ``` 1. **`tid`**: ...

    基于Oracle高性能动态SQL程序开发

    接下来,通过几个具体示例来展示如何使用动态SQL解决实际问题。 **示例一:创建表并插入数据** 首先,创建一个名为`EMP`的表,并向其中插入数据。 ```sql CREATE OR REPLACE PROCEDURE CREATE_TABLE AS BEGIN ...

    pl/sql学习

    以一个简单的例子来说明动态SQL的使用: 1. 创建名为`emp`的表,插入数据: ```sql CREATE OR REPLACE PROCEDURE create_table AS BEGIN EXECUTE IMMEDIATE 'CREATE TABLE emp (id NUMBER, name VARCHAR2(10), ...

    SQL查询语句对象化的实现.doc

    在本例中,使用了C#语言来实现SQL查询语句的对象化。下面详细介绍关键类及其功能: ##### 4.1 QueryCmd 类 - **功能**:作为整个查询逻辑的核心容器,负责存储表名、字段以及条件表达式等信息。 - **属性**: - `...

    oracle中动态SQL使用详细介绍

    以下是一个简单的例子,展示了如何使用动态SQL创建表、查询数据和处理异常: ```sql CREATE OR REPLACE PROCEDURE create_table AS BEGIN EXECUTE IMMEDIATE 'CREATE TABLE emp (id NUMBER, name VARCHAR2(10), ...

    04 数据库维护与SQL语句.pdf

    文档中没有详细介绍EasyBuilder的具体功能,但从其名称来看,它应该是一个易于使用的工具,旨在简化数据库管理和SQL语句的编写过程。具体而言,EasyBuilder可能提供了图形界面来执行常见的数据库操作,如查询、更新...

    提高SQL执行性能方案

    本文通过实例分析了不同索引设计对SQL执行性能的影响,以下是关键知识点的详细解释: 1. **非群集索引**:非群集索引在物理存储上并不按照索引顺序排列数据,而是以键值的逻辑顺序存储。在例子中,当在`date`字段上...

    ASP.NET源码——Jacky法律在线网站源码.zip

    这个“Jacky法律在线网站源码”是一个使用ASP.NET技术开发的法律咨询服务网站的完整源代码,旨在帮助开发者理解如何在实际项目中应用ASP.NET进行网页设计和功能实现。 1. ASP.NET框架基础: ASP.NET提供了丰富的...

    [企业政府]Jacky法律在线网站源码_falv.zip源码ASP.NET网站源码打包下载

    [企业政府]Jacky法律在线网站源码_falv.zip源码ASP.NET网站源码打包下载[企业政府]Jacky法律在线网站源码_falv.zip源码ASP.NET网站源码打包下载[企业政府]Jacky法律在线网站源码_falv.zip源码ASP.NET网站源码打包...

    Fetion Tool 最简单的飞信工具 by jacky_luo .rar

    "最简单的飞信工具 by jacky_luo"表明这是一个由用户jacky_luo开发的简化版或优化版飞信工具,可能是为了提高用户体验或者增加某些特定功能。 在描述中,我们看到的信息与标题相同,进一步确认这是一个由jacky_luo...

    syslog-server:基于Docker的远程syslog接收器

    Syslog服务器 介绍 这是一个Docker容器,可以接收Syslog消息(RFC3164),存储在数据库中并通过网站显示。 使用(来自Docker Registry) 工作正在进行中 ...使用$ sudo docker save syslog-server | pigz

    内存检测多合一 光盘版

    在使用memtest JACKY时,用户可以选择全盘测试,也可以指定特定的内存区域进行测试,以便找出潜在的问题。 RST(如果指的是RAID Storage Technology)则可能涉及硬盘阵列的管理,包括RAID级别配置、性能监控和故障...

    从数据库中读取数据自动生成XML

    在本示例中,我们使用 SQL Server 数据库,使用 SqlConnection 对象连接数据库,并使用 SqlCommand 对象执行 SQL 语句来读取数据。SQL 语句使用 FOR XML AUTO 子句来生成 XML 格式的数据。 自动生成 XML 在 ASP...

    ASP.NET源码——[企业]Jacky法律在线网站源码.zip

    源代码中可能包含ASP.NET的页面(.aspx)、后台代码(.cs)、配置文件(web.config)、数据库脚本(.sql)等。通过阅读和理解这些代码,我们可以深入学习ASP.NET的编程模式,例如控件的使用、数据访问层的设计(ADO...

    winform_ftp_v2.0_jacky20200126.rar

    本项目“winform_ftp_v2.0_jacky20200126”提供了一个完整的FTP客户端源码,支持文件的上传、下载以及列出文件和目录列表功能,特别适合初学者或开发者作为参考和学习。下面将对该项目的核心知识点进行深入讲解。 ...

Global site tag (gtag.js) - Google Analytics