sql触发器结果没有更新

问题描述

sql触发器结果没有更新
create trigger tr_cost
on stu_inf
for update
as
declare @bukao int
begin

select @bukao=补考次数
from v_cost

if @bukao>=2
begin

update stu_inf

set 学习费用=学习费用 * 1.1
where 学员编号 in(select 学员编号
from stu_inf)
end
end

#

请问这个触发器为什么在表中没有显示结果,stu_inf 表中学生费用还是没有变化

解决方案

虽然逻辑有些不正常,但触发器应该没问题,是有反应的,1、看一下v_cost最后一条记录的补考次数是否是大于等于2的,也就是如果v_cost有2条记录,第一条补考次数是3,第二条记录补考次数是1,则结果@bukao的值是12、触发器需要是update stu_inf表的时候才执行,insert或者delete无效。

解决方案二:
这个在这里真的不好说啊!

时间: 2024-10-24 16:52:39

sql触发器结果没有更新的相关文章

sqlserver2008触发器-SQL触发器进行更新操作时 用insert添加发生主键冲突

问题描述 SQL触发器进行更新操作时 用insert添加发生主键冲突 环境:SQLserver 2008 创建的表 --库存表(还有多少商品)ID 名称 库存数量 --销售表(卖了多少商品)ID 销售数量 create table StockInfo ( ProID int primary key identity(1,1), ProName nvarchar(20) not null, ProNumber int not null ) go create table SellTab--销售表

实战SQL语句收集(不断更新中--)

语句 实战SQL语句收集(不断更新中--) 前言:这里将我编程实践中遇到的有价值的sql语句一路记下来,一方面方便自己查用,一方面也夯实下即将遗忘的回忆.整个过程中我会不断更新,直到不能再加为止,同时,这里只记录最实用的咚咚,不效仿学院派的那一套. 一.常用SQL语句荟萃 1,查询: 1.1,简单查询:select * from table where   1.2,连接查询: 什么是连接查询?顾名释义,就是查询时涉及多个表的查询.是以说到连接,废话一下,要知道连接还是关系数据库的主要特点呢. 连

如何使用SQL触发器进行备份数据库?

sql|触发器|备份|数据库 首先,你需要建立测试数据表,一个用于插入数据:test3,另外一个作为备份:test3_bak 以下是引用片段为例: create table test3(id int primary key not null identity(1,1),uname varchar(20),uage int); create table test3_bak(id int primary key not null identity(1,1),bid int,uname varchar

SQL触发器实例讲解

SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程.  常见的触发器有三种:分别应用于Insert , Update , Delete 事件.  我为什么要使用触发器?比如,这么两个表: 复制代码代码如下: Create Table Student( --学生表  StudentID int primary key, --学号  ....  )  Create Table BorrowRec

SQL触发器在插入记录中根据A字段自动给B字段赋值

问题描述 SQL触发器在插入记录中根据A字段自动给B字段赋值 假如我有一个人员信息表,表的字段结构如下: 姓名 性别 性别值 性别字段,如果为男,性别值为0: 性别字段,如果为女,性别值为1: 性别字段,如果为中性,性别值为3: 在插入记录的时候,只会插入 姓名和性别两个字段.现在想要通过触发器来自动填充后面一个'性别值'字段. 这个如何实现呢?求指导.插入的时候,可能一次性插入多条记录. (MSSQL 2008数据库) 解决方案 sqlserver貌似是不支持oracle的for each r

sql-新手学习SQL触发器的问题

问题描述 新手学习SQL触发器的问题 A库A表与B库的A表结构完全一样! 触发器该怎么写实现 才能实现 增加 修改 删除A库A表,同时对B库A表 做同样的动作. 也就是同步2个数据库 解决方案 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 解决方案二: 不太懂...???..???????? 解决方案三: 不太懂...???..???????? 解决方案四: 不知道呢............... 解决方案五: 求采纳,缺积分.加油!我看好你 解决方案六: create trigger test after

在SQL触发器或存储过程中获取在程序登录的用户_MsSql

实现一个AuditLog的功能,是B/S结构专案. 每个用户可以登录系统,在程序中操作数据(添加,更新和删除)需要实现记录操作跟踪.是谁添加,更新和删除的,这些信息将会插入至AuditLog表中. 一般情况之下,在SQL的触发器中,只能取到(SQL验证sa:Windows验证Domain\xxx).这些用户名,达不到效果,不能真正反映到是谁操作的. 下面是让你清楚,怎样实现在SQL触发器或存储过程中获取在程序登录的用户,是在插入,更新或删除的存储过程,把登录程序当前用户传入进去.在存储过程中,再

sql 触发器trigger 创建与用法

sql 触发器trigger 创建与用法 发器也是一种带名的pl/sql块.触发器类似于过程和函数,因为它们都是拥有声明 .执行和异常处理过程的带名pl/sql块.与包类似,触发器必须存储在数据库教程中并 且不能被块进行本地化声明. 对于触发器而言,当触发事件发生的时候就会显式地执行该触发器,并且触发器不 接受参数   create table employee( 2>     id          int, 3>     name        nvarchar (10), 4>  

sql触发器详解

SQL触发器语法 语法 CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ DELETE ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column )