存储过程中创建#TEMP临时表,如果并发有很多用户调用会不会有冲突?

shjqk 2003-09-12 11:08:06
存储过程中创建#TEMP临时表保存数据,如果并发有很多用户调用会不会有冲突,
我的存储过程同时可能会有多人访问,会不会有问题,如果有,有什么好的解决方法?
...全文
491 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjhnet 2003-09-16
  • 打赏
  • 举报
回复
不会的,全局临时表会有冲突的

如果本地临时表由存储过程创建或由多个用户同时执行的应用程序创建,则 SQL Server 必须能够区分由不同用户创建的表。为此,SQL Server 在内部为每个本地临时表的表名追加一个数字后缀。存储在 tempdb 数据库的 sysobjects 表中的临时表,其全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。为了允许追加后缀,为本地临时表指定的表名 table_name 不能超过 116 个字符。
aierong 2003-09-16
  • 打赏
  • 举报
回复


不会啦

你的#TEMP临时表是局部临时表
要是全居临时表就可能有冲突
aierong 2003-09-16
  • 打赏
  • 举报
回复





____________ ______ ______
____//__][__\\___\ ____//__][_\ ______//__][_\__
(o _ | -| _ o| [o _ | -| _ \ /o _ | -| _ \
`(_)-------(_)---' `(_)-----(_)-' `-(_)-------(_)---'


________ _____ _
____//__][__\\___ ____//__]| ___//] ____
(o _ | -| _ o| (o _ | -|_________ |o_ '---' _ |
`(_)-------(_)--' `(_)-------(_)(_)--' `(_)-------(_)''



我的6部宝马车送你们啦

表示恭喜
shjqk 2003-09-16
  • 打赏
  • 举报
回复
谢谢
rose76219 2003-09-12
  • 打赏
  • 举报
回复
不会
aierong 2003-09-12
  • 打赏
  • 举报
回复

你创建的#TEMP临时表是局部临时表,不会有问题

要是##开头的全局临时表,可能会有麻烦
zjcxc 元老 2003-09-12
  • 打赏
  • 举报
回复
不会冲突,局部临时表除了本身的表名外,系统还会自动加上一个标识,用来区别不同用户生成的临时表.

你用下面的语句在查询分析器中可以看到:

--创建临时表
create table #tb(id int)

--查看临时表的表名
select name from tempdb..sysobjects where name like '#tb'

--删除临时表
drop table #tb
happydreamer 2003-09-12
  • 打赏
  • 举报
回复
不会的 不同用户使用各自的临时表
bflovesnow 2003-09-12
  • 打赏
  • 举报
回复
建议多看看"在线丛书",上面有详细的说明

尽管你在SP中建了一个#temp
但如果用户同时连上的话,SQLServer为自动给它加上如#temp01,#temp02等
以区分每个用户连接的临时表

这都是SQLServer的工作,做程序的可以不考虑这些

ps:我们能考虑到,M$的工程师们早都考虑到了,呵呵~~
trunman 2003-09-12
  • 打赏
  • 举报
回复
不会冲突
sdhdy 2003-09-12
  • 打赏
  • 举报
回复
不会,每个连接可建相同名称的本地临时表,全局临时表##temp就不行了。
txlicenhe 2003-09-12
  • 打赏
  • 举报
回复
不会冲突,临时表与你的连接有关,连接关掉临时表自动消失。
killxtt 2003-09-12
  • 打赏
  • 举报
回复
如果本地临时表由存储过程创建或由多个用户同时执行的应用程序创建,则 SQL Server 必须能够区分由不同用户创建的表。为此,SQL Server 在内部为每个本地临时表的表名追加一个数字后缀。存储在 tempdb 数据库的 sysobjects 表中的临时表,其全名由 CREATE TABLE 语句中指定的表名和系统生成的数字后缀组成。为了允许追加后缀,为本地临时表指定的表名 table_name 不能超过 116 个字符。

除非使用 DROP TABLE 语句显式除去临时表,否则临时表将在退出其作用域时由系统自动除去:

当存储过程完成时,将自动除去在存储过程中创建的本地临时表。由创建表的存储过程执行的所有嵌套存储过程都可以引用此表。但调用创建此表的存储过程的进程无法引用此表。


所有其它本地临时表在当前会话结束时自动除去。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧