关于sql server 的触发器判断值的问题?

因为自学SQL 一些小白问题,请各位大佬不惜笔墨解释一下

            是这样的问题,
            table1 和table2 两张表,其中有 
            table1中有 FBillNo,FStatus;
            table2中有FBillNo_1,FStatus  各两个字段

            其中FBillNo=FBillNo_1
            table1中写触发器
            触发器需要先判断tb2表中是否有FBillNo=FBillNo_1
            如果有则判定,tb2中的FStatus是否为0,如果FStatus=0 则tb1中 FStatus 数据不能更改并且提示(未审核),如果FStatus=1则tb1中 FStatus 数据可以更改
            如果没有则直接提示(流程未走完)
            希望大佬能把代码注释写一下。现在这边,谢过
0

1个回答

其实你的逻辑是很清晰的就是在table1上建立一个数据更新前的触发器,不同的分支返回不同的值来反映到业务逻辑上,可是触发器没有返回值啊,这个逻辑是不是应该写在修改table1表数据的存储过程中啊

0
shihengzhen101
AlbertS 回复qq371566935: 如果是把逻辑写成存储过程,就可以有返回值,比如更新table1只能通过这个存储过程,那么你就可以写自己的逻辑了,具体的还要看实现的逻辑,看看语法吧,我也写不好
11 个月之前 回复
shihengzhen101
AlbertS 回复qq371566935: 触发器是监控数据库行为的,比如有两个表,在表1上建一个监听数据更新的触发器,如果表1更新了就更新表2,那么当你在表1上update时,表2也会自动更新,但是这个过程无法反映到调用他们的程序
11 个月之前 回复
qq371566935
孤独旳旅行者 你好,因为刚学,所以不是很了解,那如果写存储过程的话,需要怎么写?如果用触发器的话能实现到什么程度?
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SqlServer Update触发器判断某个字段的值是否已经更改
要求:修改主表中某个字段的值,自动更新子表中的某个字段 我们为了不更改程序,创建一个update触发器。 create trigger [tig_update] on 表名 after update   as  declare @id int begin if (update(主表列名)) begin select @id=id from inserted
在Sql Server触发器中判断操作是Insert还是Update还是Delete
DECLARE    @IsInsert bit,    @IsUpdate bit,    @IsDelete bitIF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)    SET @IsInsert = 1ELSE    SET @IsInsert = 0IF EXISTS(SELECT 1 FROM...
SQL server 触发器,在触发Merge过程中,逐行触发的解决办法 用group by 避免是一次触发中的多行更新或删除。
SQL server 触发器,在触发Merge过程中,逐行触发的解决办法 用group by 避免是一次触发中的多行更新或删除。
SQL SERVER触发器 text类型下用 instead of 触发器注意事项 取不到identity 值的处理
SQL SERVER触发器 text类型下用 instead of 触发器注意事项 取不到identity 值的处理
sqlserver 触发器 怎么获取更新前的值
 sqlserver 触发器 怎么获取更新前的值 更新的动作你可以分2步理解,先delete ,再insert 所以,前的值在 deleted里   后的值在 inserted里   create trigger t_ATDATEState_update on list for update as if update(ATDATEState) begin  
sqlserver 触发器在数据插入时为空的数据赋值
create trigger tri_reader on Reader after insert as begin SET NOCOUNT ON; if EXISTS(select 1 from INSERTED where NotificationType is null) begin update Reader set [NotificationType]...
sql 在更新某字段后写入日志触发器
sql 在更新某字段后写入日志触发器 sql某字段更新后,触发该sql语句的sql触发器 类似于记入日志
关于MyBatis中insert返回值与SQLserver触发器/存储过程返回执行结果的问题
SQLserver触发器和Mybatis的Mapper有冲突
SQL service 触发器 当一个字段值修改时,修改当前数据其他字段值
问题来源: 公司框架封装严重,导致已有框架不能达到客户需求,寻求解决方案。 问题描述:用户提出,需要没一个月都要进行密码修改,且密码与以前密码不可重复。 解决思路:在公司框架原有基础上,添加上次修改密码字段,通过当前字段记录 用户名修改的时间。从而达到客户需求。故,在用户表的密码字段被修改后,此触发器触发。更新对应时间。 CREATE TRIGGER tr_PBDM_USER_PASSWO...
批量操作的触发器sql server2008
有三种建立触发器的方式写法,我们来看一下哪种正确1.第一种方式create trigger T on stucou for insert,update,delete as begin update course set willnum=willnum+(select count(couno)from inserted) where couno=(select couno from inserted...
sql 触发器记录修改的字段和值
create TRIGGER dbo.tri_Export_Subsidiary_update    ON  dbo.Export_Subsidiary    for UPDATE    AS  BEGIN     -- SET NOCOUNT ON added to prevent extra result sets from     -- interfering with SELECT sta...
SqlServer触发器的一个例子
先抄一点关于触发器的文字介绍: 在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 常见的有三种:分别应用于Insert , Update , Delete 事件。一、Trigger语法: create trigger tr_name on table/view {for | after | instead of }
利用SqlServer触发器自动更新表updatetime字段值
本文主要记录了使用SqlServer数据库触发器自动更新表的"更新时间updatetime"字段 在 MySQL数据库中,某行数据创建时间字段 createtime 、 行最新更新时间字段updatetime 可建表时分别用"datetime DEFAULT CURRENT_TIMESTAMP" 和 " datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE C...
触发器实现对插入数据的字段更改 Oracle+SQL Server
最近有个使用触发器实现对插入数据的某个列做更改的需求,因此整理了Oracle和SQL Server对于此类需求的触发器写法,本文仅提到了Insert触发器。 首先我们创建一张表: --创建Test表 Create table test(id int primary key,name varchar(20),sex varchar(1),status int) 我们的目的是实
SQL Inserted和deleted详解
SQL Inserted和deleted详解
sqlServer 触发器的使用(并判断insert、update、delete)、游标的使用
if(object_id('sendCardTrigger','tr') is not null)  drop trigger  sendCardTrigger go create trigger  sendCardTrigger on DispatchCarSendCard for insert,update,delete   as  declare  @typeCard nvarchar(50...
在触发器中使用sequences问题
在触发器中,默认某个字段自增长,不能直接把seqences的值赋给字段,要用select  into ,然后复制。如:;new.id:=test_seq.nextval;会报错。应该这样写:select test_seq.nextval into vID from dual;:new.id:=vID;...
SQL Server 学习笔记⑧- 触发器(修改前和修改后的语句插入指定表中)
SQL Server 学习笔记⑧- 触发器(修改前和修改后的语句插入指定表中)
SQLserver中的不同类型触发器
一、两大类触发器 (1)DML触发器。当数据库中发生数据操纵语言(DML)事件时将调用DML触发器。一般情况下,DML事件包括对表或视图的INSERT语句、UPDATE语句和DELETE语句,因而DML触发器也可分为三种类型:INSERT、UPDATE和DELETE。 利用DML触发器可以方便地保持数据库中数据的完整性。 (2)DDL触发器。DDL触发器也是由相应的事件触发的,但DDL触发器
sql触发器 当某个字段的值从某个数字变成0,那么把该字段变为255
CREATE     TRIGGER `触发器名` BEFORE UPDATE ON `表名`      FOR EACH ROW BEGIN         IF old.effec_number <> 0 AND new.effec_number = 0 THEN           SET new.effec_number = 255;        END IF;     EN...
关于Oracle触发器新旧值判断容易搞混的问题
本文旨在记录触发的各种操作之间,对比 :old 和 :new 值的变化,方便在写触发器判断值的时候,容易混乱的问题。                例如我有一条记录               id  name     create_date               1   张三     2018-01-20 00:00:00                       1. 新增
一次SQLSERVER触发器编写感悟
背景:BOSS需要我写一个工厂采集端到服务器端的数据同步触发器,数据库采用的是sqlserver2008 需求:将多台采集机的数据同步到服务器中,如果采集端数据库与服务器数据库连接失败则将数据保存到记录表中 前期思路:从采集端创建服务器端的数据库链接,通过采集端的insert,update触发,同时往远程表写入 问题:由于初始接触sqlserver,对sqlserver触发器了解不深,查阅一
【Sql Server】使用触发器把一个表中满足条件的数据部分字段插入到另一个表中
create trigger 触发器名称 on 对哪个表起作用 after insert,update as if @@rowcount =0 return set nocount on begin transaction; insert into 表名 (col1,col2,col3,...) select inserted.col1,inserted.co
Microsoft SQL Server 触发器更新、删除、插入表
//表插入CREATE TRIGGER INSERTDATEON A1AFTER INSERTAS BEGIN INSERT INTOA2 (A2NAME) SELECT A1NAME FROM INSERTED END表同步插入CREATE TRIGGER DELETEDATEON A1AFTER DELETEAS BEGIN DELETE A2WHEREA2NAME IN(SELECT A1N
Sql Server中触发器语法及使用入门【笔记】
--CREATE TRIGGER TRI_BIISBN ON dbo.BookInfo  --CREATE 触发器名字 ON 表名 --AFTER INSERT AS --对表进行的操作 --BEGIN --END CREATE TRIGGER TRI_BIISBN1  --创建触发器名称 ON dbo.BookInfo             --位于某表的改动 FOR UPDATE  ...
Sql server 2005触发器发送http请求
Sql server2005中触发器发送http请求,可以通过创建存储过程,由存储过程发送http请求,触发器生成url参数,调用存储过程的方式。 1、存储过程示例 [code="java"] alter PROCEDURE P_GET_HttpRequestData( @URL varchar(500), @status int=0 OUT ) AS BEGIN DECL...
无主键创建触发器禁止重复插入数据
无主键创建触发器禁止重复插入数据 alter trigger ti_B_test--创建修改触器 on B for insert as begin declare @id float, @d int select @id=id from inserted --测试数据,可删除 select B.id,coun...
本触发器实现了对SQLSever实时插入数据前的二次操作,然后再存入数据库
本触发器实现了对SQLSever实时插入数据前的二次操作,然后再存入数据库。 CREATE TRIGGER [dbo].[NewTrigger] ON [dbo].[地表水实时监测表] AFTER INSERT AS declare @测站编码 nvarchar(255),@采样时间 datetime ,@流量 float,@水位 float,@水深 float,@水质类别 varcha...
SQL Server2012 学习之(十六) :触发器的创建与使用
接上篇博客的内容,触发器可以看作是一个特殊的存储过程。本篇博客主要关注DML和DDL触发器对应的使用方法。1.触发器的定义触发器的定义如下图。它与存储过程的区别在于触发器是被动调用的 ,即在满足特定事件的情况下被执行,而存储过程是在使用操作语句时主动进行调用。触发器大致分为两种:DDL触发器和DML触发器,相对应的具体定义如下。2.创建触发器2.1创建INSERT触发器INSERT触发器是DML触...
sqlserver中编写的after insert触发器
[code="sql"] CREATE TRIGGER [dbo].[actStatisticsTrigger_insert] ON [dbo].[gl_activity] AFTER INSERT AS DECLARE @counntOfInsert INT --考虑到一条insert语句插入多条记录的情况 SELECT @counntOfInsert = COUNT(*) FRO...
sql server触发器实现插入时操作另一张表
以前都是也得mysql,现在写sqlserver的触发器,感觉改动还是蛮大的 1.定义变量 #在mysql中变量直接这么定义就可以了 SET @VALUE = "111"; #在sql server中 declare @count int; #并赋值 set @count =0; #如果是查询,必须这么些 select @count = count(*) from WQ_MNINF_D_RE
触发器与 select 结果循环使用
今天工作需要,要写一个 MySQL 触发器,当 a 表发生 insert 时,从 b 表取出部分数据,插入 c 表中,就要用到之前提到的两个问题。 触发器 创建触发器的使用的关键字是 create trigger 然后接 trigger name 即触发器名(自定),+ before/after insert/update/delete 触发事件二选一,触发事件 n 选一,+ table_name...
sqlserver/oracle当插入表数据时同时修改其中一个字段的触发器
 今天碰到一个情况就是我们公司的一个OA系统,有一个定时任务,它会定时更新域账号系统里面新建的帐号,但是我发现更新完之后,数据库本应该把更新日期放入到fd_create_time字段里面的,但是结果确放入到了fd_alter_time字段里而fd_create_time为null,当系统维护员在OA系统修改人员数据的时候fd_alter_time字段有被更新了,这个 肯定是有问题的,记录不
【问题解决】借助Navicat 创建SQL Server 触发器
【背景】 今天在学习牛腩新闻视频,接触到SQL触发器的建立。 但是自己电脑上安装的SQL Server 2014 再按照步骤操作时发现是不能点击的。 在网上查找资料发现可以有很多方法la...
几个sql触发器样例
触发器虽然在sql标准中有支持,但是几个数据库仍然还是具有特殊的语法。笔者试着写了几个比较常用的触发器作为记录。DEMO使用一下两个表作为触发器的使用示例 test1(a, b, c, d) test2(a, c, d) Mysql insert DROP TRIGGER IF EXISTS after_insert_trigger; DELIMITER $ CREATE TRIGGER after
sqlserver查看触发器,存储过程,视图及表的一些命令
select name from sysobjects where xtype='TR' --所有触发器 select name from sysobjects where xtype='P' --所有存储过程 select name from sysobjects where xtype='V' --所有视图 select name from sysobjects where
sql server 实现行级触发器方法
sql server本身没有行级触发器,可用游标实现 create trigger delticket on ticket after delete as begin declare @Tno char(20) declare cur cursor local forward_only for select [Tno] from deleted open cur fetch n...
sql server 存储过程,触发器,事务
尽管sql server 提供了使用方便的图形化用户界面,但是各种功能的实现基础是 transact-sql 语言. transact-sql语言直接来源于sql语言,因此也具有sql语言的几个特点: - 一体化的特点 transacpt-sql 语言集数据定义语言,数据操纵语言,数据控制语言和附加语言为一体,其中附加语言元素不是标准的sql语言的内容,但是它增强了用户对数据库操作的灵活
sql insert触发器遍历inserted表取数据操作
有时候使用组合语句Insert into TableName Select *from Inserted where ...或者 Update TableA set TableA .1 =TableAB.1 ,TableA .2 =TableB.2 from TableB where (TableB.x =xx or TableB.3 =TableA.2)可以直接遍历到临时表中所有符合的数据
sqlserver 用触发器记录操作
create trigger tri_code on t_jc_code after insert,delete,update as begin declare @id nvarchar(50) declare @typeid nvarchar(50) declare @name nvarchar(50) declare @code nvarchar(50) ...
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo