sql server-数据库触发器问题,为什么触发器会出现错误

问题描述

数据库触发器问题,为什么触发器会出现错误

create trigger 月工资变动
after update on 考勤
referencing
oldrow as oldtuple,
newrow as newtuple
for each row
begin
if(oldtuple.一月份缺勤扣薪 != newtuple.一月份缺勤扣薪)
then
update 员工月工资 set 一月份工资=一月份工资-newtuple.一月份扣薪+oldtuple.一月份扣薪
where oldtuple.员工编号=员工月工资.员工编号;
end if;
end;

这是一个关于工资管理数据库的触发器,考勤是一个表,当考勤表中一月份缺勤扣薪改动时,员工工资表中对应的一月份工资变化,在SQL server中出现错误,请问错误在哪?

解决方案

你这写法是oracle的吧

 create TRIGGER 月工资变动
 on 考勤
after update
as
begin
declare @oldName varchar(20), @newName varchar(20),@ygbh varchar(20);
select @oldName = 一月份缺勤扣薪,@ygbh=员工编号 from deleted;
select @newName = 一月份缺勤扣薪 from inserted;
if(@oldName != @newName)
begin
    update 员工月工资 set 一月份工资=一月份工资-@newName+@oldName
    where 员工月工资.员工编号=@ygbh;
end;
end;

解决方案二:

数据库中的所有触发器

解决方案三:

对了 我用的是SQL Sever 2008 r2

时间: 2024-10-30 11:50:15

sql server-数据库触发器问题,为什么触发器会出现错误的相关文章

SQL Server 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法

server|备份|错误|对象|解决|数据|数据库 介绍SQL Server 数据库使用备份还原造成的孤立用户和对象名'xxx'无效的错误的解决办法          在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复.但是,此时会出现问题,这里说明几种常见问题的解决方法.一.孤立用户的问题比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立

SQL Server - 最佳实践 - SSMS配合BCP迁移SQL Server数据库上阿里云

本文讨论的主题是使用SSMS(SQL Server Management Studio)配合BCP命令行的方式来迁移SQL Server数据库.使用SSMS做数据库结构迁移,使用BCP命令做全量数据迁移,此方案是以本地SQL Server数据库迁移到阿里云RDS SQL Server 2012为例. 如果你觉得读取文章不够直观,请点击观看Youku视频,近25分钟的视频详细介绍来如何使用SSMS + BCP迁移SQL Server数据库上阿里云RDS SQL Server.使用SSMS+BCP迁

SQL Server 数据库设计规范

原文:SQL Server 数据库设计规范 数据库设计规范 1.简介 数据库设计是指对一个给定的应用环境,构造最优的数据库模式,建立数据库及其他应用系统,使之能有效地存储数据,满足各种用户的需求.数据库设计过程中命名规范很是重要,命名规范合理的设计能够省去开发人员很多时间去区别数据库实体. 最近也因为工作需要所以整理出了这个word文档,望大家指正.   2数据库设计 数据库规划→需求分析→数据库设计→应用程序设计→实现→测试→运行于维护 2.1数据库规划 定义数据库应用系统的主要目标,定义系统

SQL Server数据库性能优化

设计1个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事.在开发工具.数据库设计.应用程序的结构.查询设计.接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能.本文以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议. 1 数据库设计 要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案.在实际工作中,许多SQL Server方案往往是由于数据库设计得不好导致性能很差.所以,要实

SQL Server数据库性能优化技术第1/2页_数据库其它

设计1个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事.在开发工具.数据库设计.应  用程序的结构.查询设计.接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能.本文以SQL  Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议.  1 数据库设计  要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案.在实际工作中,许多SQL  Server方案往往是由于数据库设计得不好导致性能很差

清空SQL Server数据库中所有表数据的方法

原文:清空SQL Server数据库中所有表数据的方法 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般

sql server-如何在SQL Server 数据库中调用JAVA程序

问题描述 如何在SQL Server 数据库中调用JAVA程序 工作中 遇到一个实际的问题如下: 一个在线的SQL server数据库A,他的一个触发器在数据库有更新时把新的数据插入的到另一个SQL server 数据库B,已经写好的一个JAVA程序可以把B中的数据全部复制到一个Oracle 数据库C中,并且立即把数据库B中的数据清空.现在希望这个程序能够自动执行,就是JAVA程序能够在检测到B中有新数据后立即开始自动执行.我已经知道对于Oracle数据库可以通过触发器直接调用JAVA程序,可是

简析SQL Server数据库用视图来处理复杂的数据查询关系_MsSql

SQL Server数据库用视图来处理复杂的数据查询关系是本文我们主要要介绍的内容,该内容是这样想到的:在辅助教务系统那块的时候,我做的一个页面是对单个老师和整个学院老师的工作量查询,这个操作设计到了三个本数据库中的表和一个不同数据库中的一个教师信息表,如果用普通的SQL语句是非常难实现的,由于我刚开始做的视频播放系统,数据库的表相对比较少,没有涉及到这么复杂的处理关系,刚开始感觉很难. 后来想到用视图可以解决多个表的复杂关系,但是另外一张表是不同数据库的,是否依然能进行操作,经过测试之后,居然

SQL Server 数据库的备份详细介绍及注意事项_Mysql

SQL Server 备份 前言 为什么要备份?理由很简单--为了还原/恢复.当然,如果不备份,还可以通过磁盘恢复来找回丢失的文件,不过SQL Server很生气,后果很严重.到时候你就知道为什么先叫你备份一次再开始看文章了.∩__∩.本系列将介绍SQL Server所有可用的备份还原功能,并尽可能用实例说话. 什么是备份?SQL Server基于Windows,以文件形式存放资料,所以备份就是Windows上SQL Server相关文件的一个某个时间点的副本.根据备份类型的不同,副本的种类和内

SQL Server 数据库优化_MsSql

在开发工具.数据库设计.应用程序的结构.查询设计.接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能.本文以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议.1 数据库设计 要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很好的数据库设计方案.在实际工作中,许多SQL Server方案往往是由于数据库设计得不好导致性能很差.所以,要实现良好的数据库设计就必须考虑这些问题. 1.1 逻辑库规范化问题 一般来说,逻辑