关于SQL临时表名的问题

yanele 2012-01-05 03:02:04
我知道创建临时,有下面两个方式:

select into #临时表名 from 表名



select into ##临时表名 from 表名


现在希望:

#临时表名 或 ##临时表名,能否是一个变量? 临时表名作为一个变量,以SQL执行中以当前系统时间+固定识别码命名?
...全文
187 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
swq6413 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yanele 的回复:]
假设:
我客户端电脑A,执行
select * into ##tab from t1 where…… --创建临时表
select * from ##tab left join…… --再从临时表中取出相关数据;

如果此时客户端电脑B也相同的语句,但where条件不一样,结果也不一样。
电脑B后执行,但先执行结束,那电脑A是不是会读取到B执行后的结果,而不是他本身执行的结果?
[/Quote]

用##tab 会有这个问题,##tab是全局临时表,建议用 #tab(会话内临时表,只有会话内的SQL语句可访问)

yanele 2012-01-05
  • 打赏
  • 举报
回复
假设:
我客户端电脑A,执行
select * into ##tab from t1 where…… --创建临时表
select * from ##tab left join…… --再从临时表中取出相关数据;

如果此时客户端电脑B也相同的语句,但where条件不一样,结果也不一样。
电脑B后执行,但先执行结束,那电脑A是不是会读取到B执行后的结果,而不是他本身执行的结果?
qingshangwuheng 2012-01-05
  • 打赏
  • 举报
回复
有什么关系呢?访问临时表的时候,除非你的SQL 写错了,不然不可能访问错误的,#和##就是个作用域的问题,区分好就行了
天-笑 2012-01-05
  • 打赏
  • 举报
回复
"#tab" 是会话内临时表
"##tab" 全局临时表
天-笑 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yanele 的回复:]
这太麻烦了,为了一个临时表名,需要将所有SQL语句转换成字符串.
如果SQL语句有很长很长的话,就太痛苦了,不知道有没有更简单方法?

主要目的:担心同一个SQL语句,在不同的多个客户端同时运行会有冲突.
[/Quote]

如果是"#tab" 就不用担心
如果是"##tab" 肯定会有问题!!!
yanele 2012-01-05
  • 打赏
  • 举报
回复
这太麻烦了,为了一个临时表名,需要将所有SQL语句转换成字符串.
如果SQL语句有很长很长的话,就太痛苦了,不知道有没有更简单方法?

主要目的:担心同一个SQL语句,在不同的多个客户端同时运行会有冲突.
叶子 2012-01-05
  • 打赏
  • 举报
回复
可以

declare @tablename varchar(20)
set @tablename='#20120101'

exec ('create table '+@tablename +'(id int) insert into '+
@tablename+' select 1 select * from '+@tablename)
/*
id
-----------
1
*/
AcHerat 元老 2012-01-05
  • 打赏
  • 举报
回复
那就把你所有的语句弄为动态去执行,例如:


exec(' select * into #'+convert(varchar(10),getdate(),120)+'AC from tb
select * from #'+convert(varchar(10),getdate(),120)+'AC')
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

34,594

社区成员

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

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