在论坛中出现的比较难的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格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
随机推荐
- wrod: 突然无法输入汉字
“文件”-“选项”-“高级”-“去掉 输入法控制处于活动状态复选框”.
- ubuntu18设置root账号的开机登录
date: 2019-08-20 17:36:49 author: headsen chen notice :个人原创 1,用普通用户登录. su - root 打开终端 vi /etc/pam.d ...
- leetcode 293.Flip Game(lintcode 914) 、294.Flip Game II(lintcode 913)
914. Flip Game https://www.cnblogs.com/grandyang/p/5224896.html 从前到后遍历,遇到连续两个'+',就将两个加号变成'-'组成新的字符串加 ...
- 从0开始学爬虫8使用requests/pymysql和beautifulsoup4爬取维基百科词条链接并存入数据库
从0开始学爬虫8使用requests和beautifulsoup4爬取维基百科词条链接并存入数据库 Python使用requests和beautifulsoup4爬取维基百科词条链接并存入数据库 参考 ...
- python-learning-第二季-画图matplotlib
https://www.bjsxt.com/down/8468.html 绘制方法: 绘制直线: #coding:utf- import matplotlib.pyplot as plt #准备绘制的 ...
- 006-guava 集合-集合工具类-集合扩展工具类
一.概述 需要实现自己的集合扩展.也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集 二.使用 2.1.ForwardingList装 ...
- 将C++资源文件读取出来
HRSRC hResource = FindResource(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_CALC), TEXT(&q ...
- Spring cloud微服务安全实战-3-13重构代码
让代码同时支持两种方式,登陆访问和带着请求头的token访问也可以. 首先做代码的重构 这里改成getSession() 改成这样以后会有一个问题,我用httpBasic登陆成功以后,我的用户信息放在 ...
- 头文件里声明和定义,Qt编译不过问题
1.现象1 Qt5.2.1,新建头文件,声明一个类,然后在此头文件中实现类的static变量和方法,但是编译不过,显示:multiple definition of `xxx'. 2.现象2 在高版本 ...
- 从零开始封装React UI 组件库并发布到NPM
github 开源地址:zswui github 说明文档:wiki 1.新建目录wui (1)进入到 wui 目录 执行 npm init 命令初始化项目.更具提示信息填充将会生成的 package ...
