SQL Msg 18054, Level 16, State 1
今天接到一个看起来很简单的任务--修改数据库中的一项数据。听起来很简单吧。
在网上搜索了一下,很快就拼凑出了相应的 SQL 语句:
UPDATE [suivi].[dbo].[numSerie]
SET ni_numCible = 'HF17263N7P13340'
WHERE ni_num = 'HF17262A1400234'
通过以上语句也可以看出来,任务很简单,在 [suivi].[dbo].[numSerie] 表中,查找 ni_num = 'HF17262A1400234' 的记录,将该条记录的 ni_numCible 字段设置为 'HF17263N7P13340'。
出乎意料,在执行了以上语句之后,出现了以下提示:
Msg 18054, Level 16, State 1, Procedure tg_InsUpdCible, Line 31
Error 50010, severity 16, state 1 was raised, but no message with that error number was found in sys.messages. If error is larger than 50000, make sure the user-defined message is added using sp_addmessage.
Msg 3609, Level 16, State 1, Line 1
The transaction ended in the trigger. The batch has been aborted.
执行完后不是应该出现 “xx Rows afftectd” 的吗,作为 SQL 小白的我,对于这一大堆提示信息,表示看不懂。
好吧,上 Google 上搜索一下吧,OK,就第一条结果看看。
看起来跟我得到的错误信息差不多,来仔细瞧一瞧。发现以下一段代码:
/*Check for valid parameter*/
If LEN(@txtBidderID) =0 or ISNULL(@txtBidderID,'') =''
RAISERROR(50002,10, 1,'Error Accessing Bidder Record - Must Provide Bidder ID')
ELSE
作者得到的 Error 50002 应该就是这里输出的啦,那我接下来的工作,就该是找到我这里输出 Error 50010 的那个文件在哪了,找到之后,为啥要给我甩出 Error 50010 就清楚了,如何避免也就迎刃而解了!
可是作者贴出来的是个啥文件,不知道,依次搜索了该文件中的几个关键字后,我 get 到了 trigger 这个概念,大意是说,在执行 insert \ update \ delete 操作之前或是之后,会自动触发一些操作。可这个 trigger 在哪,来找找吧。

查看上图中高亮文件的内容,果然,里面写明了,在什么样的条件下,就会甩出 Error 50002 .
右键该文件,哎,有个 Disable 菜单,看起来是禁用这个 trigger 的意思。
禁用该 trigger 以后,再执行本文最初的 SQL 语句,成功啦!最后再将该 trigger 使能。OK,任务完成!
今天遇到的这个小问题,对于稍懂 SQL 的人来说,应该是非常容易解决的。可是对于我这样对 SQL 知之甚少的人来说,也算得上如临大敌了。现在把解决问题的过程记录下来,一来是给遇到同样问题的其他人提供解决方法,更重要的是提醒自己,遇到问题,重点是要解决问题,不要一遇到某个的问题,就找一堆相关的教程来从头啃,这肯定是不行的,毫无疑问,如此不到半小时就会放弃。始终要把解决当前的问题作为根本目的,一步步来,问题自然就会解决的。
SQL Msg 18054, Level 16, State 1的更多相关文章
- SQL Server ->> Msg 7411, Level 16, State 1, Line 1 -- Server 'XXXX' is not configured for RPC.
关于问题,有两个相关的服务器选项. exec sp_serveroption @server='CIA-SH-SVR-SIS', @optname='rpc', @optvalue='true' ex ...
- Sybase ASE报错:server Error: 8242, Severity: 16, State: 1
昨天上午,同事反映某系统在执行存储过程的过程中报错了,报错的信息异常如下: 05:00000:00009:2014/06/09 15:45:30.34 server Error: 8242, Seve ...
- Natas Wargame Level 16 Writeup(Content-based Blind SQL Injection)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqwAAADhCAYAAAANm+erAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF
- [译]Stairway to Integration Services Level 16 – Flexible Source Locations (多文件导入)
介绍 在本文中我们将利用SSIS参数,变量 以及 Foreach Loop Container 从多个源动态导入数据. 开始前我们先下载一些数据.WeatherData_Dec08_Apr09.zip ...
- 提高SQL执行效率的16种方法
项目中优化sql语句执行效率的方法:1)尽量选择较小的列2)将where中用的比较频繁的字段建立索引3)select子句中避免使用'*'4)避免在索引列上使用计算.not in 和<> ...
- 【Teradata】安装SQL Assistant和Administrator 16.20(含查看.net版本)
1.安装介质获取: 获取的路径:connections==>Gateways==>Customer Services==>TOOLS & APPLICATIONS(点击Mor ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
- UNION ALL 视图 'ImprotHIS2012.dbo.ImportHISData' 不可更新,因为没有找到分区依据列。 Severity 16 State 12
-- 3 更正措施,使约束check一次 Alter Table ImprotHIS_Bak_2011.dbo.ImportHISData with check Check Constraint al ...
- SQL 2008 RAISERROR语法在SQL 2012/2014不兼容问题
原文 旧的RAISERROR语法在SQL 2012不兼容问题 raiserror 写法: SQL 2008: raiserror 55030 'text error' SQL 2012: raiser ...
随机推荐
- 实验三 Java基本程序设计
第一部分:理论知识复习部分 第一章:第一章介绍的是Java程序设计的概述,通过两周的Java学习中,重温了Java“白皮书的关键术语,更深一步理解乐11个关键术语. 第二章:本章主要介绍如何安装JDK ...
- Linux centos 7 目录结构
一.目录结构与用途: /boot:系统引导文件.内核 /bin:用户的基本命令 /dev:设备文件 /etc:配置文件 /home:用户目录 /root:root用户目录 /sbin:管理类的基本命令 ...
- Mybatis配置-简单的使用
导包 基本配置 配置mybatis.config.xml文档 <?xml version="1.0" encoding="UTF-8" ?> < ...
- iOS开发图片选择
一行代码搞定图片选择 // // gzhPhotoManager.h // 图片选择 // // Created by 郭志贺 on 2020/5/26. // Copyright © 2020 郭志 ...
- 面向对象案例 - 学生信息管理系统V1.0
学生管理系统项目[所有知识点整合] 1. 学生管理系统项目 尝试完成以下功能 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的 ...
- Java基础语法--分支结构
if-else 结构 if(条件表达式){ 执行代码块; } if(条件表达式){ 执行代码块; }else { 执行代码块; } if(条件表达式){ 执行代码块; }else if (条件表达式) ...
- [工具推荐]004.EXE签名工具SignTool使用教程
数字证书,真是个神奇的东西,可以保证软件不被修改,可以表明文件的发布日期,最重要的,可以很大程度的减少杀毒软件的误报,当然,这就要使用可信任的机构颁发的证书了. 现在要说的不是申请证书,而是如何制作自 ...
- python数据类型 列表+元组
一:列表 二:元组 一:列表list: 1.列表中的每个元素都可变的,意味着可以对每个元素进行修改和删除: 2.列表是有序的,每个元素的位置是确定的,可以用索引去访问每个元素: 3.列表的所有元素放在 ...
- 如何提交本地代码到git仓库
首先要先注册一个自己的GitHub账号,注册网址:https://github.com/join 有了自己的账号以后,就可以进行登录,开始创建一个新的项目 创建一个新的项目,填写项目名称,描述 我是和 ...
- Java实现 LeetCode 480 滑动窗口中位数
480. 滑动窗口中位数 中位数是有序序列最中间的那个数.如果序列的大小是偶数,则没有最中间的数:此时中位数是最中间的两个数的平均数. 例如: [2,3,4],中位数是 3 [2,3],中位数是 (2 ...