标题:关于声明变量的问题
只看楼主
wudi251314
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-8-3
 问题点数:0 回复次数:4 
关于声明变量的问题
Declare @T Table(DepId int,InYear int,InWeek int,
BookCount int,PenCount int,DeskCount int)

Insert @T Select 1, 2007, 1, 10, 10, 10
Union All Select 1, 2007, 2, 11, 11, 11
Union All Select 1, 2007, 3, 12, 12, 12
Union All Select 2, 2007, 1, 10, 10, 10
Union All Select 2, 2007, 2, 11, 11, 11
Union All Select 2, 2007, 3, 12, 12, 12
对上面的语句有些疑问
它用declare 声明了变量@T 可是后面跟的不是一个类型,而是一个表,这是怎么回事?
如果要是查询@T里的内容怎么写语句,难道是用from @T 吗?

搜索更多相关主题的帖子: 变量 int Union Select 声明 
2007-08-15 21:43
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
得分:0 

你想得沒錯,但是更重要的是你應動手調試下


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-08-16 08:11
wudi251314
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-8-3
得分:0 
我已经去调试了
可是它总提示@T没有被定义,我就不知道怎么回事,在前面已经定义了啊
而且我还想问
在哪里能找到@T的数据?
在表里不存在。
如果想查@T里的所有数据该怎么写语句?
难道是select * from @T?
2007-08-16 08:19
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 
没错就是select * from @T!

声明的这个变量是表变量

Declare @T Table(DepId int,InYear int,InWeek int,
BookCount int,PenCount int,DeskCount int)

Insert @T Select 1, 2007, 1, 10, 10, 10
Union All Select 1, 2007, 2, 11, 11, 11
Union All Select 1, 2007, 3, 12, 12, 12
Union All Select 2, 2007, 1, 10, 10, 10
Union All Select 2, 2007, 2, 11, 11, 11
Union All Select 2, 2007, 3, 12, 12, 12

select * from @T

一起执行你就能看到结果

什么叫变量你明白吗??? 一旦你执行结束 它就不存在了!
declare @a int
set @a = 1

执行完这2句 你再执行print @a 一样会告诉你没定义

变量 就是执行完就释放了! 所以分2次做就找不到

2007-08-16 10:49
wudi251314
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2007-8-3
得分:0 


我明白了,原来是被释放了啊,刚才尝试了一下,确实是这样,谢谢楼上的两位朋友
那声明变量表的作用是什么,而且它只能运行一次,可以直接把这些数据存到表里吗?
也就是说用表能代替变量表的功能吗?

2007-08-16 12:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-162995-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.204517 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved