首页 新闻 会员 周边

SQL SERVER 如果同时创建相同名字的临时表会不会冲突

0
悬赏园豆:5 [已解决问题] 解决于 2015-07-08 13:21

SQL Server 临时表名前使用一个#号,临时表是局部的,使用两个#号,临时表是全局的,我是用winform开发程序, 都是用SA登录SQL SERVER , 
第一个问题 假设 同时有5个用户同时创建 临时表 #aaa 是不是就冲突了呢.
第二个问题 在SQL中创建用户SB(权限等同于SA), 用SA 创建临时表 #EEE ,用SB创建临时表 #EEE 会不会冲突
第三个问题 用SA 创建全局临时表 ##EEE ,用SB创建全局临时表 ##EEE 会不会冲突

zhengyingcan的主页 zhengyingcan | 初学一级 | 园豆:12
提问于:2014-01-15 10:28
< >
分享
最佳答案
0

局部临时表是会话级别,当前会话(连接)中可用,当前会话关闭后,释放(可手动释放)。其他会话不可访问。

全局临时表同样是会话级别,当前会话中可用,当前会话结束后,释放掉。

和局部临时表的区别在于,如果当前会话未关闭,那么其他会话可以访问这个临时表。

临时表在会员中只是一个代号,在实际的系统临时库中,真实表名会自动处理。
可以理解为一个映射关系。会话名+临时表名=>临时库的真实表名

现在回答你的问题:

1、如果5个用户不是同一个连接(一般不会出现,不排除你一直开着连接不关闭),不会冲突;

2、这个就绝对不会冲突,因为不可能是一个连接了;
3、同问题2,不是同一个连接,不会冲突;

收获园豆:5
幻天芒 | 高人七级 |园豆:37175 | 2014-01-15 11:16

1. 如果5个用户都是用SA帐户登录, 是算一个连接,还是5个连接呢?

zhengyingcan | 园豆:12 (初学一级) | 2014-01-15 11:35

@zhengyingcan: 看你是SqlConnection是不是一个。

幻天芒 | 园豆:37175 (高人七级) | 2014-01-15 13:00

@幻天芒: SqlConnection 字符串内容是一样的,只是客户端不同, 就是在不同的客户端电脑上执行

zhengyingcan | 园豆:12 (初学一级) | 2014-01-15 13:03

@zhengyingcan: 那就不是一个连接。SqlConnection对象,不是指连接字符串!

幻天芒 | 园豆:37175 (高人七级) | 2014-01-15 13:18
其他回答(1)
0

一、#aaa只对当前用户的连接可见。

二、如果是在存储过程中创建、或不同用户的不同会话创建,系统会自动后面加一组数字区分,如#EEE123等。

三、全局临时表不允许重名

邀月 | 园豆:25475 (高人七级) | 2014-01-15 11:28

一. 如果5个用户都是用SA帐户登录, 是算一个连接,还是5个连接呢?

支持(0) 反对(0) zhengyingcan | 园豆:12 (初学一级) | 2014-01-15 11:36

@zhengyingcan:看你是SqlConnection是不是一个。 

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-01-15 13:00

@幻天芒: SqlConnection 字符串内容是一样的,只是客户端不同, 就是在不同的客户端电脑上执行

支持(0) 反对(0) zhengyingcan | 园豆:12 (初学一级) | 2014-01-15 13:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册