Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server触发器集变量= column.value

Server触发器集变量= column.value
EN

Stack Overflow用户
提问于 2012-05-29 23:05:18
回答 1查看 16.5K关注 0票数 1

我正在尝试创建一个触发器,该触发器在表component上运行,并将UPDATEDELETEINSERT操作记录到表component_history

代码语言:javascript
运行
AI代码解释
复制
CREATE TRIGGER component_hist
ON component
AFTER INSERT, UPDATE, DELETE
AS

DECLARE
   @tr_action varchar(8),
   @tr_id_compoment int,
   @tr_name varchar(max),
   @tr_value int

IF COLUMNS_UPDATED() <> 0 -- delete or update?
BEGIN     
  SET @tr_action = 'UPDATE'
ELSE -- delete     
BEGIN
  SET @tr_action = 'DELETE'
END

INSERT INTO component_history VALUES (@tr_id_component, @tr_name, @tr_value, @tr_action);

如何将列(id, name, value)的信息从表component发送到component_history

我试过:

代码语言:javascript
运行
AI代码解释
复制
SET 
@tr_id_component = component.id,
@tr_name = component.name,
@tr_value = component.value

但它报告说:

Msg 4104,16级,状态1,过程component_hist,第22行

多部分标识符"component.id“无法绑定.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-29 23:21:18

这样的东西就够了:

代码语言:javascript
运行
AI代码解释
复制
CREATE TRIGGER component_hist
ON component
AFTER INSERT, UPDATE, DELETE
AS

INSERT INTO component_history /* I'd prefer to see a column list here */
select id,name,value,CASE WHEN EXISTS(select * from deleted) THEN 'UPDATE' ELSE 'INSERT' END
from inserted
UNION ALL
select id,name,value,'DELETE'
from deleted
where not exists(select * from inserted)

一个小的优化(如果您有大量的大型更新)将是将EXISTS (select * from deleted)评估移出SELECT (因为它目前将每一行评估一次)。

还要注意,在UPDATE的情况下,我们只是存储新值,而不是旧值。

inserted and deleted pseudo-tables是特殊的--它们包含受导致触发器触发的语句影响的行。inserted表包含任何新行,deleted表包含任何旧行。这导致了这样的逻辑:在insert期间,deleted将是空的(没有旧行受到插入的影响)。在delete期间,inserted将为空(未创建新行)。在update期间,两个表都被填充。

这就是为什么select的顶部同时适用于insertupdate操作的原因,因为我们使用的是inserted表。但是我们检查deleted中是否有行,以区分这两个操作。在底部的select中(在union all下面),我们查询deleted表,但是如果这实际上是一个update操作,则使用where子句来防止返回任何行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10811491

复制
相关文章
httpclient post发送json数组并解决json乱码问题
业务: 客户端发送json数据,服务端进行解析 client发送json格式: {"data":[{"name":"1;,a","id_no":"222,a","cellphone":"123141a","abode_detail":"213,a","emp_add":"werew3a","app_no":"111111111111a","create_time":"11a"},{"name":"张三","id_no":"null","cellphone":"null","abode_detai
shengjk1
2018/10/24
4.3K0
HttpClient 发送get请求并返回Json数据
一、以百度百科接口为例 http://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&
week
2018/08/24
3.3K0
HttpClient 发送get请求并返回Json数据
mysql中保存并操作json对象
"At the end of the day, we can endure much more than we think we can.—— Frida Kahlo"
小闫同学啊
2020/03/25
14.4K0
json转对象时一直报错
问题:json格式的请求体经controller控制器会自动转换成对象格式。可是的json请求的key和对应的类的字段是一模一样的,发送请求总是显示400错误,估计是请求体错误。可是并没有发现错误啊,请求的字段都是复制的,百思不得其解,只能逐个定位,一步一步的找错。
全栈程序员站长
2022/08/05
5640
json数据发送时浏览器提示“保存”解决
数据以json形式发送的时候,部分浏览器不能直接解析,而是提示是否保存,nodejs的express应用中可以通过如下代码解决该问题: router.get('/', function (req, res, next) { ... res.type("html"); ... }); 这样浏览器就不会再提示保存了。。。
用户1141560
2017/12/26
1.3K0
python中将字符串转为json对象并
string =" {   "status": "error",   "messages": ["Could not find resource or operation 'BZK1.MapServer' on the system."],   "code": 404
py3study
2020/01/09
1.3K0
HttpClient 发送Json
import com.fasterxml.jackson.databind.ObjectMapper; import msxf.model.People; import msxf.until.ImpalaJdbc; import msxf.until.NowDate; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.http.HttpS
shengjk1
2018/10/24
2.3K0
java json数组转json对象_json对象数组
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/30
10.5K0
java json数组转json对象_json对象数组
Springboot实战:发送邮件/重置密码业务
忘记密码并通过邮件重置密码是一个常见的业务需求,在开发我的个人小项目过程中,也需要用到这个业务,今天就给大家带来一个业务实战。
Rude3Knife的公众号
2019/08/07
1.6K0
python中将字符串转为json对象并取值
"messages": ["Could not find resource or operation 'BZK1.MapServer' on the system."],
用户7886150
2021/01/16
2.3K0
[Springboot]发送邮件、重置密码业务实战
忘记密码并通过邮件重置密码是一个常见的业务需求,在开发我的个人小项目过程中,也需要用到这个业务,今天就给大家带来一个业务实战。
蛮三刀酱
2019/03/26
7890
postman 发送json请求
Tags: 工具 Archives QR Code
简单、
2018/07/17
1.5K0
json对象转map对象_json map
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172454.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
2.7K0
JSON对象
目录 JSON JSON语法 JSON静态函数 访问JSON对象 JSON JSON是一种数据交换格式 JSON语法 数据都是有名称/值对组成 名称和值对是由冒号分隔 JSON静态函数 parse 将JSON格式的字符串转换为JSON对象 var str = '{"hvge":1,"hv":2}' console.log(JSON.parse(str)) stringify 将JSON对象转化为字符串 var oJson = { "hvge": 1, "hv":
星辉
2019/01/15
1.4K0
JSON 对象
key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。
陈不成i
2021/07/13
1.2K0
前端json字符串转json对象_list对象转json
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
4.4K0
.net c# json转对象 对象转json
.net和java中操作json不像php那么轻巧方便,之前我使用.net json转对象,需要创建一个json实体类,繁琐至极。
高久峰
2023/07/02
5530
Java技术点-json转对象,对象转json
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
用户9006224
2022/12/21
3.3K0
jackson简单使用,对象转json,json转对象,json转list
添加jackson依赖: // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.2' // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
Ryan-Miao
2018/03/13
8K0
点击加载更多

相似问题

当试图发送Json对象时,应用程序崩溃

11

如何在ESP8266 MicroPython崩溃后重置main.py?

44

Esp8266无限重置

10

发送空格和点时Json崩溃

10

发送json对象后应用程序崩溃

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档