SQL Server 批量创建表

zxdyu2009 2010-04-19 11:23:50

/*下面循环创建有误,第一行 '4' 附近有错误*/
declare @ii int
set @ii = 4
while @ii <= 100000
begin
declare @strSql varchar(100)
declare @_str varchar(10)
set @_str = str(@ii)
set @strSql = 'create table dd_tb_'+ @_str + ' (tm datetime,tagValue float)'
set @ii = @ii + 1
execute(@strSql)
end

/*这个正确:*/
declare @ii varchar(10)
set @ii = '4'
/*while @ii <= 100000*/
begin
declare @strSql varchar(100)
/*declare @_str varchar(10)
set @_str = str(@ii)*/
set @strSql = 'create table dd_tb_'+ @ii + ' (tm datetime,tagValue float)'
/*set @ii = @ii + 1*/
execute(@strSql)
end


很明显是因为 @ii 是int的原因,int如何转换成字符串呢?
...全文
301 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
htl258_Tony 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 happy_stone 的回复:]
引用 4 楼 sgtzzc 的回复:
引用 1 楼 happy_stone 的回复:
SQL code
set @strSql = 'create table dd_tb_'+ ltrim(@ii) + ' (tm datetime,tagValue float)'
/*set @ii = @ii + 1*/
execute(@strSql)
end

传说中的猿粪?
[/Quote]真是很有猿粪
zxdyu2009 2010-04-19
  • 打赏
  • 举报
回复
谢谢各位了,呵呵。数据库方面的没怎么接触,第一次发数据库方面的帖子,人还挺多的。呵呵。我自己用C++写了一个代码,创建的。看来要好好弄弄SQL语句了,结帖了!
csmark 2010-04-19
  • 打赏
  • 举报
回复
永生天地 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chuifengde 的回复:]
str函数虽然是将数字转成字符串,但默认会格式为长度为10的字符串,长度不够会在左用空格补齐,所以不如用ltrim或rtrim转换好
[/Quote]

原因出来了
chuifengde 2010-04-19
  • 打赏
  • 举报
回复
str函数虽然是将数字转成字符串,但默认会格式为长度为10的字符串,长度不够会在左用空格补齐,所以不如用ltrim或rtrim转换好
快乐_石头 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sgtzzc 的回复:]
引用 1 楼 happy_stone 的回复:
SQL code
set @strSql = 'create table dd_tb_'+ ltrim(@ii) + ' (tm datetime,tagValue float)'
/*set @ii = @ii + 1*/
execute(@strSql)
end
[/Quote]
传说中的猿粪?
dawugui 2010-04-19
  • 打赏
  • 举报
回复
set @strSql = 'create table dd_tb_'+ @ii + ' (tm datetime,tagValue float)'

-->

set @strSql = 'create table dd_tb_'+ ltrim(@ii) + ' (tm datetime,tagValue float)'

set @strSql = 'create table dd_tb_'+ cast(@ii as varchar) + ' (tm datetime,tagValue float)'
sgtzzc 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 happy_stone 的回复:]
SQL code
set @strSql = 'create table dd_tb_'+ ltrim(@ii) + ' (tm datetime,tagValue float)'
/*set @ii = @ii + 1*/
execute(@strSql)
end
[/Quote]
dawugui 2010-04-19
  • 打赏
  • 举报
回复
set @_str = str(@ii)

-->

set @_str = ltrim(@ii)
set @_str = cast(@ii as varchar)
sgtzzc 2010-04-19
  • 打赏
  • 举报
回复
set @strSql = 'create table dd_tb_'+ ltrim(@ii)+ ' (tm datetime,tagValue float)'
快乐_石头 2010-04-19
  • 打赏
  • 举报
回复
set @strSql = 'create table dd_tb_'+ ltrim(@ii) + ' (tm datetime,tagValue float)'
/*set @ii = @ii + 1*/
execute(@strSql)
end

34,587

社区成员

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

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