| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1331 人关注过本帖
标题:[求助]建立的表名中,能否用变量
取消只看楼主 加入收藏
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
 问题点数:0 回复次数:5 
[求助]建立的表名中,能否用变量
如何把变量加到表名中

请高手指导

[此贴子已经被作者于2007-3-19 21:47:10编辑过]

搜索更多相关主题的帖子: 表名 变量 指导 
2007-03-19 18:51
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 

declare @i int
set @i=1
while @1<10
begin
create table a@1(
myid int not null,
myname varchar(10),
myadress varchar(50))
set @i=@i+1
end

可以这样吗?

2007-03-19 20:01
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
set @i =1
while @i<10
begin
set @sql = 'Create table tbl'+@i +' (myid int not null,my name varchar(10) )'
exec (@sql)
set @i =@i+1
end
把@sql声明为varchar(20)为什么会出现:
将 varchar 值 'Create table tbl' 转换为数据类型为 int 的列时发生语法错误。


exec (@sql),这个语句是执行变量的吗?能否解释下

为什么要把@i的数据类型变成字符型?

[此贴子已经被作者于2007-3-20 23:06:29编辑过]

2007-03-20 22:34
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 

不好意思!还是有点不理解
想提两个问题

1)exec (@sql),这个语句是执行变量的吗?能否解释下
exec(@sql)执行这个语句,等同于直接执行Create table tbl语句吗

2)cast(@i as varchar)
为什么要把@i的数据类型转换成字符型?

2007-03-20 23:23
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 
1)我把@sql变量设置成varchar(50)后
print(@sql) Create table tbl1 (myid int not null,myname varcha只能出现这50个字段了,

set @sql='Create table tbl'+cast(@i as varchar) +' (myid int not null,myname varchar(10) )'
打''号的字段好象不应该算在varchar(50)里的吗?


2)当cast(@i as varchar) 把@i的数据类型转换成字符型后,
set @i=@i+1 是字符的@i+1怎么计算的啊?
2007-03-21 00:13
lhj2005
Rank: 1
等 级:新手上路
帖 子:230
专家分:0
注 册:2007-1-23
收藏
得分:0 

字符也包含数字的吧
这个时候的@i是字符的数字,是不是因为这样也可以运算


EXEC(@sql)相当于
执行Create table tbl1 (myid int not null,myname varchar(10)),吗

2007-03-21 00:35
快速回复:[求助]建立的表名中,能否用变量
数据加载中...
 
   



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

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