在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)
原文:在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
在触发器中,当明细表插入数据时调用主表对应的数据
http://bbs.csdn.net/topics/390631301
大家好,由于金蝶ERP没法根据报价单里面的备品率自动算出备品数。所以需要建一个触发起。
触发器我是建在明细表上的,当明细表插入数据时调用主表对应的数据,关键是这时主表的数据好像也没提交到数据库,请问有什么方法可以调用到,谢谢。
我的回复:
通过了下面的实验,验证了,如果主表的事务还没有提交,但又想在触发器中用主表对应的数据,来计算备用品,是完全可以的。
因为触发器是和触发操作,在同一个事务中。
只要你的插入主表,插入明细表,在同一个事务中,那么就会和触发器也在同一个事务中,那么虽然主表操作没提交,也能在触发器中查询到这条还没有提交的主表记录。
-
--主表
-
create table t1
-
(
-
id int primary key,
-
v varchar(20)
-
)
-
-
--明细表
-
create table t2
-
(idd int primary key,
-
id int references t1(id),
-
vv varchar(20)
-
)
-
-
insert into t1
-
select 1,'aa'
-
-
insert into t2
-
select 1,1,'xxx'
-
union all select 2,1,'yyy'
-
-
go
-
-
-
create trigger dbo.trigger_t2
-
on dbo.t2
-
for insert
-
as
-
-
--查询主表t1,发现刚才插入数据的事务,虽然没有提交
-
--但是在触发器中,完全可以查询到刚才插入到主表的数据
-
select * from t1
-
-
--下面可以引用t1表,也就是主表,和明细表,来计算出备品数
-
-
go
-
-
-
begin tran
-
-
-
insert into t1
-
select 2,'bb'
-
-
insert into t2
-
select 3,2,'123'
-
-
--先不提交事务
-
--commit
-
/*
-
id v
-
1 aa
-
2 bb
-
*/
在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)的更多相关文章
- 在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题)
原文:在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- 在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时、分钟计算问题)
原文:在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时.分钟计算问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. ...
- 在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列)
原文:在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字)
原文:在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)
原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)
原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ...
- 在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题)
原文:在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得 ...
- 在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名)
原文:在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串)
原文:在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
随机推荐
- 码云 Gitee 云端软件平台学习--GitHub
码云 Gitee http://git.oschina.net/jackjiang/MobileIMSDK http://www.blogjava.net/jb2011/archive/2018/11 ...
- MyBatis 示例之存储过程
存储过程在数据库中比较常见,虽然大多数存储过程比较复杂,但是使用 MyBatis 调用时,用法都一样,因此我们这一节使用一个简单的存储过程来了解 MyBatis 中存储过程的使用方法. 基本准备 存储 ...
- 算法习题---4-10洪水(UVa815)
一:题目 有一个n*m(<=n,m<=)的网格,每个格子都是边长为10米的正方形,网格四周是无限大的墙壁.输入每个格子的海拔高度,以及网格内雨水的总体积,输出水位的海拔高度以及有多少百分比 ...
- C# 实现生产者消费者队列 (转)
按语:按照下面文档,测试成功: https://www.cnblogs.com/samgk/p/4772806.html 开发过程中经常会碰到这样的场景:需要从一个地方获取一些数据,然后处理数据并将其 ...
- 【物联网】传感器+wifi传输+回复+显示
https://www.jianshu.com/p/cb0274d612b5 https://timgsa.baidu.com/timg?image&quality=80&size=b ...
- ELK之Kibana的可视化监控报警插件sentinl的配置
参考:https://www.bbsmax.com/A/gGdXbgXmJ4/ https://www.deathearth.com/333.html https://www.cnblogs.com ...
- Intellij IDEA Debug 多模块下断点目标源问题
Ctrl+Alt+S进入Settings,选择Debugger->show alternative source switcher 勾选,开启显示替代源选择器 由于项目工程存放了多个应用模块,包 ...
- CountDownLatch和CyclicBarrier使用上的区别
一.CountDownLatchDemo package com.duchong.concurrent; import java.util.Map; import java.util.concurre ...
- Python爬取网址中多个页面的信息
通过上一篇博客了解到爬取数据的操作,但对于存在多个页面的网址来说,使用上一篇博客中的代码爬取下来的资料并不完整.接下来就是讲解该如何爬取之后的页面信息. 一.审查元素 鼠标移至页码处右键,选择检查元素 ...
- <统计学>统计学开篇
我们或多多少都接触学习过统计学,可统计学到底是一种什么样的学科呢? 我们将统计学定义为:对数据进行收集.整理.展示.分析和解释,以帮助人们更有效地进行决策的科学. 关于统计学的研究通常分为两类:描述统 ...
