求解顺序创建数据库表格的语句 ,高手请进

magic 2003-12-31 10:52:07
我想作一个自动创建表格的教本,但是使用变量时总是不对,
创建的表格依次为 001,002,003。。。。
DECLARE @i int DECLARE @j int,@k int declare @c char(4)
SET @i = 1
Set @c='0000'
SET @j = 1 WHILE @i < 13 BEGIN WHILE @j < 32 BEGIN
set @k =100*@i+@j
SET @j = @j + 1 PRINT @i PRINT @j print @k
if @k>1000
set @c=CAST(@k AS char(4))
else
set @c='0'+CAST(@k AS char(3))
print @c

CREATE TABLE @c (
[ID] [char] (25) NOT NULL ,
[Image] [image] NULL ,
[DateTime] [datetime] NULL ,
[Describe] [varchar] (50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


END
SET @i = @i + 1
SET @j = 1 END

求教高手
忘了向大家说新年好了

...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2003-12-31
  • 打赏
  • 举报
回复
--写那么复杂做什么?

DECLARE @i int,@tbname sysname
set @i=1
while @i<=100 --100为你要创建的表的个数
begin
set @tbname='['+right('0000'+cast(@i as varchar),4)+']'
exec('CREATE TABLE '+@tbname+'(
[ID] [char] (25) NOT NULL ,
[Image] [image] NULL ,
[DateTime] [datetime] NULL ,
[Describe] [varchar] (50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
')
set @i=@i+1
end
hiyo 2003-12-31
  • 打赏
  • 举报
回复
同意使用如下语句:
declare @str varchar(8000)
set @str='CREATE TABLE '+@c+ ' (
[ID] [char] (25) NOT NULL ,
[Image] [image] NULL ,
[DateTime] [datetime] NULL ,
[Describe] [varchar] (50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]'
execute (@str)
hdslah 2003-12-31
  • 打赏
  • 举报
回复
declare @str varchar(8000)
set @str='CREATE TABLE '+@c+ ' (
[ID] [char] (25) NOT NULL ,
[Image] [image] NULL ,
[DateTime] [datetime] NULL ,
[Describe] [varchar] (50) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]'
execute (@str)
換成這句試試

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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