首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于临时表无效。 [已结贴,结贴人:lpodh]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-20 21:12:21 楼主
    ms sql server 2005
    在管理器中运行:

    select * into ##tmp from XXX; (运行后不退出)
    select * from ##tmp

    就出现临时表无效,本地临时表亦如此,之间没有退出过管理器。
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 00:57:271楼 得分:0
    有没有高手帮我看一下啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ChinaJiaBing
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 01:15:002楼 得分:2
    没有问题....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bobland
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 05:29:593楼 得分:2
    没有问题,我还亲自帮你在我机器上试了一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • JYR520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 07:41:034楼 得分:0
    呵呵,学习中
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wufeng4552
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 07:59:285楼 得分:2
    没有问题~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mugua604
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:11:066楼 得分:1
    要一个批次运行!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:27:197楼 得分:0
    写两个#做什么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jasonren
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:33:478楼 得分:0
    全局
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:37:209楼 得分:0
    引用 8 楼 jasonren 的回复:
    全局

    全局临时表也不是存储在那个数据库下的,当然引用无效了,本地临时表也不行吗?试过了吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:41:2310楼 得分:0
    引用 9 楼 only_endure 的回复:
    引用 8 楼 jasonren 的回复:
    全局

    全局临时表也不是存储在那个数据库下的,当然引用无效了,本地临时表也不行吗?试过了吗?


    都是如此,郁闷的很。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:42:0111楼 得分:0
    引用 6 楼 mugua604 的回复:
    要一个批次运行!


    什么意思?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:43:2212楼 得分:2
    临时表有个生命周期的,你去查一查...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:44:0213楼 得分:0
    SQL code
    select * into #tmp from XXX; (运行后不退出) select * from #tmp go;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:46:5314楼 得分:1
    临时表 
      也可以创建临时表。临时表与永久表相似,但临时表存储在  tempdb  中,当不再使用时会自动删除。 
       
      有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号  (#)  打头;它们仅对当前的用户连接是可见的;当用户从  Microsoft®  SQL  Server™  2000  实例断开连接时被删除。全局临时表的名称以数学符号  (##)  打头,创建后对任何用户都是可见的,当所有引用该表的用户从  SQL  Server  断开连接时被删除。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:47:3715楼 得分:0
    引用 13 楼 only_endure 的回复:
    SQL codeselect * into #tmp from XXX; (运行后不退出)
    select * from #tmp
    go;



    如果:

    select * into #tmp from XXX;
    select * from #tmp;
    go;

    是可以的,但如果
    select * into #tmp from XXX;
    go;
    select * from #tmp;
    go;
    就不行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:47:5916楼 得分:1
    引用 9 楼 only_endure 的回复:
    引用 8 楼 jasonren 的回复:
    全局

    全局临时表也不是存储在那个数据库下的,当然引用无效了,本地临时表也不行吗?试过了吗?

    上面说错了,不好意思.
    全局临时表的名称以数学符号  (##)  打头,创建后对任何用户都是可见的,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:48:5117楼 得分:1
    引用 15 楼 lpodh 的回复:
    引用 13 楼 only_endure 的回复:
    SQL codeselect * into #tmp from XXX; (运行后不退出)
    select * from #tmp
    go;



    如果:

    select * into #tmp from XXX;
    select * from #tmp;
    go;

    是可以的,但如果
    select * into #tmp from XXX;
    go;
    select * from #tmp;
    go;
    就不行

    呵呵,当然了,你的GO表示一个批处理,此时,#TMP就消逝了...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:51:1618楼 得分:0
    引用 12 楼 only_endure 的回复:
    临时表有个生命周期的,你去查一查...


    好像是自动啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:52:0819楼 得分:0
    引用 14 楼 only_endure 的回复:
    临时表 
      也可以创建临时表。临时表与永久表相似,但临时表存储在  tempdb  中,当不再使用时会自动删除。 
       
      有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号  (#)  打头;它们仅对当前的用户连接是可见的;当用户从  Microsoft®  SQL  Server™  2000  实例断开连接时被删除。全局临时表的名称以数学符号  (##)  打头,创建后对任何用户都是可见的,…


    问题不是出在这
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:53:5620楼 得分:0
    引用 17 楼 only_endure 的回复:
    引用 15 楼 lpodh 的回复:
    引用 13 楼 only_endure 的回复:
    SQL codeselect * into #tmp from XXX; (运行后不退出)
    select * from #tmp
    go;


    如果:

    select * into #tmp from XXX;
    select * from #tmp;
    go;

    是可以的,但如果
    select * into #tmp from XXX;
    go;
    select * from #tmp;
    go;
    就不行

    呵呵,当然了,你的GO表示一个批处理,此时,#TMP就消逝了...


    select * into #tmp from XXX;
    select * from #tmp;

    但同时执行是可以的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • only_endure
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 08:57:4821楼 得分:2
    SQL code
    晕菜---
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 09:03:4022楼 得分:0
    在其他机器上的sql server里面都没问题
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xbfitliu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 09:05:3923楼 得分:2
    LZ是不是数据量大的原因。top一下看看。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 09:09:0124楼 得分:0
    引用 23 楼 xbfitliu 的回复:
    LZ是不是数据量大的原因。top一下看看。


    试过了,即使只有1 条记录也是如此
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 09:47:2825楼 得分:0
    晕倒,用程序里面建全局临时表倒可以
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lizhongheng
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 16:22:1326楼 得分:2
    楼主是不是在存储过程里使用了?
    如果是的话,要改成
    Create table #tmp(.....)

    Insert Into #tmp(.....)
    Select ..... from XXX
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ltmlen
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 17:26:4927楼 得分:2
    在同一个批处理过程中,你建的临时表#tmp,可以用#tmp引用
    但是一个批处理完了之后,你建的临时表虽然在,但是名字已经不是#tmp了,你去tempdb数据库中看下吧,#tmp后面有个很长的后缀,你要用那个名字才可以使用你建的历史表
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lpodh
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-22 16:47:1028楼 得分:0
    问题至今无法解决,但幸好在程序中创建临时表工作正常.
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved