社区
疑难问题
帖子详情
全局临时表支不支持事务?
ShapeRock
2003-10-16 03:27:02
如:一个过程中用了begin tran,然后修改了全局临时表,这时另一个用户可不可以在另一个过程中修改全局临时表。
问题2:一个过程一运行就开始了begin tran,过程没执行完,另一个用户也调用了此过程,那么第二个用户是不是等到第一个用户commit tran后才开始执行这个过程?
...全文
65
9
打赏
收藏
全局临时表支不支持事务?
如:一个过程中用了begin tran,然后修改了全局临时表,这时另一个用户可不可以在另一个过程中修改全局临时表。 问题2:一个过程一运行就开始了begin tran,过程没执行完,另一个用户也调用了此过程,那么第二个用户是不是等到第一个用户commit tran后才开始执行这个过程?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
6HZ
2003-10-16
打赏
举报
回复
问题一:这要看你在处理这个临时表时加什么数据锁,这样做比较影响性能;
问题二:你说的对,但事务保证数据处理的完整性,不处理数据的并发操作。
zjcxc
2003-10-16
打赏
举报
回复
建议最好不用全局临时表.
zjcxc
2003-10-16
打赏
举报
回复
--创建一个全局临时表:
create table ##tb(a int,b int)
--然后开启两个连接,执行下面的语句:
begin tran
insert into ##tb values(1,1)
select * from ##tb
/*--结果:
第一个连接可以正常执行完成.
第二个连接中,执行前两句没问题,第三句被挂起.
当在第一个连接中,提交或回滚事务,则第二个连接的第三句就执行了.
--*/
pengdali
2003-10-16
打赏
举报
回复
有个变通的办法:
create proc 内部过程
@tablename varchar(100) output
as
declare @a varchar(100)
set @a=newid()
exec('select * into [##'+@a+'] from xx')
set @tablename=@a
go
create proc 调用过程
as
declare @a varchar(100)
exec 内部过程 @a output
exec('select * from [##'+@a']')
pengdali
2003-10-16
打赏
举报
回复
1 如何锁一个表的某一行
A 连接中执行
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
begin tran
select * from tablename with (rowlock) where id=3
waitfor delay '00:00:05'
commit tran
B连接中如果执行
update tablename set colname='10' where id=3 --则要等待5秒
update tablename set colname='10' where id<>3 --可立即执行
2 锁定数据库的一个表
SELECT * FROM table WITH (HOLDLOCK)
注意: 锁定数据库的一个表的区别
SELECT * FROM table WITH (HOLDLOCK)
其他事务可以读取表,但不能更新删除
SELECT * FROM table WITH (TABLOCKX)
其他事务不能读取表,更新和删除
ShapeRock
2003-10-16
打赏
举报
回复
to: pengdali(大力 V3.0)
偶想通过事务让每个用户都能按先后顺序调用这个全局临时表。虽然这影响速度,但速度无关紧要。
ShapeRock
2003-10-16
打赏
举报
回复
晕,大力,你信誉分怎么551了。比偶专家分都高。哈,想再确认一下。
sdhdy
2003-10-16
打赏
举报
回复
第二个用户要等到第一个用户commit tran后才开始执行这个过程
pengdali
2003-10-16
打赏
举报
回复
我不是让你不要用全局临时表吗?它不好,你的过程不可能只有一个人使用。
Oracle 临时
事务
表
全局
临时表
_global Temporary Table
1、介绍 创建
临时表
时,Oracle只创建了表的结构(在数据字典中定义),并没有初始化内存空间,当某一会话使用
临时表
时,ORALCE会从当前用户的
临时表
空间分配一块内存空间。...
全局
临时表
创建语法 create
Oracle-
全局
临时表
临时表
分
事务
级
临时表
和会话级
临时表
。
事务
级
临时表
只对当前
事务
有效,通过语句:ON COMMIT DELETE ROWS 指定。 会话级
临时表
对当前会话有效,通过语句:ON COMMIT PRESERVE ROWS语句指定。 1,隔离性:数据只在会话...
临时表
,
临时表
什么时候删除
临时表
,顾名思义就只是临时使用的一张表,一种是本地
临时表
,只能在当前查询页面使用,新开查询是不能使用它的,一种是
全局
临时表
,不管开多少查询页面均可使用。
临时表
与永久表相似,但
临时表
存储在tempdb中,当...
PostgreSQL
全局
临时表
(pgtt)——兼容oracle
也就是说不
支
持
oracle的
全局
临时表
的功能,除此之外,Oracle
全局
临时表
是可以指定SCHEMA的,而PostgreSQL的
临时表
不能指定SCHEMA,会自动在temp临时SCHEMA中创建。 Pgtt是PostgreSQL的一个插件,可以用来兼容创建、...
KingbaseES
全局
临时表
KingbaseES 除了
支
持
PG原生的
临时表
机制外,还
支
持
类似oracle 的
临时表
机制,也就是
全局
临时表
。
全局
临时表
支
持
表结构共享,避免用户每次了都需要创建
临时表
的操作。以下以例子的形式,介绍PG
临时表
与
全局
临时表
的...
疑难问题
22,206
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章