SQL 触发器 当修改TEST表中的F1字段时,同时根据条件修改F2字段

Code
--当外修改TEST表中的F1字段时,同时根据条件修改F2字段
ALTER TRIGGER [dbo].[updatetest1] ON [dbo].[TEST] 
FOR INSERT, UPDATE, DELETE 
AS
begin

if update(F1)
 declare
 @fid int,
 @f1 int 

set @fid=(select fid from inserted)  --获取被修改行ID
set @f1=(select f1 from inserted)  --获取修改后内容

begin
if (select f1 from inserted) > 0
begin
    update test set f2 = '5' where fid = @fid
end
if (select f1 from inserted) <= 0
begin
    update test set f2 = '6' where fid = @fid
end
end
end

只是一个修改字段触发SQL语句的例子

时间: 2024-10-27 08:08:05

SQL 触发器 当修改TEST表中的F1字段时,同时根据条件修改F2字段的相关文章

SQL触发器在保持数据库完整性中的实际应用

触发器是SQL Server数据库应用中一个重要工具,是一种特殊类型的存储过程,应用非常广泛.一般存储过程主要通过存储过程名而被直接调用,触发器则是通过事件触发执行.触发器基于一个表来创建并和一个或多个数据修改操作(插入.更新或删除)相关联,可视作表的一部分.触发器与数据库中的表紧密相关,比如当对表执行INSERT.UPDATE或DELETE操作时,触发器就会自动执行. SQL Server 包括两大类触发器:DML 触发器和 DDL 触发器.其中DDL 触发器是 SQL Server 2005

oracle修改一个表中的主键字段值,与其外键关联的另一个表中的相应字段值也改变

问题描述 oracle修改一个表中的主键字段值,与其外键关联的另一个表中的相应字段值也改变 oracle 中修改一个表中的主键字段值,与其外键关联的另一个表中的相应字段值也改变? 有如下两张表,表a和表b 表a 结构如下: ID Name age 1 lisi 18 2 wangwu 21 3 sunliu 34 4 yiliu 24 ... ... ... 其中ID字段为表a主键且自增 表b结构如下: CID CNAME ID 1 aaaaa 1 2 bbbbb 2 3 cccccc 4 4

如何写SQL实现:在数据表中增加一列,该列的值是出库数的累加 (按制单日期升序累加)

问题描述 如何写SQL实现:在数据表中增加一列,该列的值是出库数的累加 (按制单日期升序累加) 如上图,在数据表中增加一列[累计出库数],累计出库数的值等于出库数的累加数(按制单日期升序累加),如何写SQL实现 解决方案 Oracle有现成的lead,lag函数 其他数据库看下面我的博客 sqlserver http://blog.csdn.net/danielinbiti/article/details/45308867 mysqlhttp://blog.csdn.net/danielinbi

利用递归算法找到一张关系表中父节点和子节点并且进行修改他们的id

问题描述 利用递归算法找到一张关系表中父节点和子节点并且进行修改他们的id 利用递归算法找到一张关系表中父节点和子节点并且进行修改他们的id,修改父id的时候,先修改他下面的子节点id,这样一层层往上修改,最后修改父id.通过递归的方法一级级找,边找边修改,这个代码怎么实现?

SQL Server 2000 如何锁定表中的行,使其他线程读取该行时候发生sql异常,不能读取?

问题描述 SQL Server 2000 如何锁定表中的行,使其他线程读取该行时候发生sql异常,不能读取?以及锁定之后如何对该行数据进行释放? 解决方案 只能通过transaction和lock让别人读取这行的时候等待.如果真要做...高一点山寨也不是不行,不过非常恶心.首先,得在一个大transaction里面,我假设你的C#层已经做了transaction了,然后可以:DECLARE @exists INTSELECT @exists = 1 FROM myTable WITH (NOLO

修改App.config中的数据库连接 ,才能运行,怎么修改?

问题描述 修改App.config中的数据库连接 ,才能运行,怎么修改? 我下了一个C#系统源码,点Debug中的exe运行不了,需要修改App.config中的数据库连接 ,请问要怎么修改? <?xml version="1.0" encoding="utf-8" ?> value="Data Source= .sql2005;Initial;Initial Catalog=DATA;User ID=sa;Password=sasasa&qu

UPDATE 语句用于中修改数据库表中的数据

更新数据库中的数据 UPDATE 语句用于在数据库表中修改数据. 语法 UPDATE table_name SET column_name = new_value WHERE column_name = some_value 注释:SQL 对大小写不敏感.UPDATE 与 update 等效. 为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数.该函数用于向 SQL 连接发送查询和命令. 例子 稍早时,我们在本教程中创建了一个名为 "Person" 的表.它看

【SQL 学习】求一个表中列值的最前三名

表A是个职工工资表,现在你写一个sql,实现如下功能: 1.返回表中所有结果 2.将工资最高的3个职工记录信息按工资从低到高排序放在查询结果的前3个最高工资记录 3.其他的记录以正常的select结果输出 写一个sql来实现 利用 比较大小 select decode(sign(4-变量1),1,-变量1,变量1) from dual; sign()函数根据某个值是0.正数还是负数,分别返回0.1.-1 SQL> select sign(3),sign(-3),sign(0) from dual

SQL同时更新两张表中关联数据方法

文章标题比较难理解,先让我举个例子,解释一下要实现的操作. 有两张表,t_statistics.t_add,如下 t_statistics数据 t_add数据 现在需要将 t_statistics 表 addtotal 字段的值减去 t_add 表 total 字段的值,条件是两者有相同的 id,所以正确的操作之后,t_add 记录无变化,t_statistics 记录如下 测试的数据库为Oracle(Oracle Database 10g Enterprise Edition Release