免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3571 | 回复: 8
打印 上一主题 下一主题

再问个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-01-15 10:19 |只看该作者 |倒序浏览
下面这个表(temp_score)进行select
id class score
1 0 85
1 1 89
1 2 85
2 0 78
希望结果是
   id class score
1 1 0 85
2 1 1 89
3 1 2 85
4 2 0 78
。。。。
即第一列为行号
可以吗?

论坛徽章:
0
2 [报告]
发表于 2002-01-15 10:38 |只看该作者
select identity(newcol),col1,col2,col3 into #temp

论坛徽章:
0
3 [报告]
发表于 2002-01-15 10:45 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2002-01-15 11:02 |只看该作者
谢谢!再问一个
#temp是啥意思?为什么不直接是temp?

论坛徽章:
0
5 [报告]
发表于 2002-01-15 11:11 |只看该作者
表名前有1個#的是局部臨時表對每一個connection有效.
有2個##的是全局臨時表對每一個session有效.

臨時表存放在tempdb中.
當connection釋放時局部臨時表會自動被SQLServer刪除.
當session完畢時全局臨時表會自動被SQLServer刪除.

论坛徽章:
0
6 [报告]
发表于 2002-01-15 11:13 |只看该作者
補充說明:
在同一個session中對於單獨的connection不能有同名的全局臨時表.
但可以有相同name的局部臨時表.局部臨時表對每一個當前connection有效.

论坛徽章:
0
7 [报告]
发表于 2002-01-15 13:52 |只看该作者
不好意思,什么是session?什么是connection?什么是全局临时表?什么是局部临时表?
如果你觉得麻烦或很简单不值得一说请告诉我哪里有这些东西。
谢谢!

论坛徽章:
0
8 [报告]
发表于 2002-01-15 14:18 |只看该作者
当我们对结果集中的数据进行计算和修改的时候就有可能用到临时表.
临时表不是本来就有的,用户去创建它才会存在,而且它存放于数据库tempdb中.
创建的语法和创建用户表一样.如:
create table #temp1                -- 局部临时表
(......)
create table ##temp2        -- 全局临时表
(......)

在3层或者n层的商务软件中session是指一个模块打开的连接.
connection是指模块中单独的作业的连接.

比方说你的ERP系统中的一个子模块A,下面有俩个功能作业A1,A2
那么A就是session.如果执行A1功能作业,那就是打开A1的connection,
同样执行A2功能作业,那就是打开A2的connection.每一个connection都是独立的.
A1如果创建了一个全局临时表##temp2,那么A2可以用到它,除非退出了模块A断开session
但是如果A1创建的是局部临时表#temp1就不一样了,A2用不到A1创建的#temp1,而且它自己可以创建同名的#temp1.
每一个#temp1都对应于自己的功能作业.其实它相当于局部变量的概念.

我的表达能力不是太好,说了这么多,可能还没能让你明白.
欢迎提问,并谢谢你对本版的支持.
希望你能常来.               

论坛徽章:
0
9 [报告]
发表于 2002-01-15 14:25 |只看该作者
谢谢,基本明白了。我再做几个试验。
我会常来的,在这里学习真是事半功倍。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP