sql把字符串转换成表对象?

需求是这样的,我需要建立Test0,Test1,Test2.....Test9这样10个表,在server2005中怎样使下面这种方法生效:declare@iintset... 需求是这样的,我需要建立Test0,Test1,Test2.....Test9这样10个表,在server 2005中怎样使下面这种方法生效:
declare @i int
set @i=0
while @i<10
begin
create table Test+Convert(@i,nvarchar(1))--这里如何实现?
(
id int primary identity(1,1),
otherInfo nvarchar(2000)
)
end
declare @i int
set @i=0
while @i<10
begin
create table Test+Convert(@i,nvarchar(1))--这里如何实现?
(
id int primary key identity(1,1),
otherInfo nvarchar(2000)
)
@i=@i+1
end
展开
 我来答
久就旧1O
推荐于2018-04-05 · TA获得超过1275个赞
知道小有建树答主
回答量:709
采纳率:75%
帮助的人:205万
展开全部
把创建语句保存在一个变量里面@createstatement='create table...',然后执行语句: EXECUTE sp_executesql @createstatement 试试 , 一楼回答的语句一般不用EXEC函数执行,sp_executesql 有输入输出参数的接口!
百度网友0f37e23c0
2010-07-05 · TA获得超过1543个赞
知道大有可为答主
回答量:1070
采纳率:50%
帮助的人:1294万
展开全部
我来回答吧:
我测试过了,下面正常没有问题的,修改如下:

declare @i int
set @i=0
while @i<10
begin
declare @CreateTableSql varchar(2000)
set @CreateTableSql = 'create table Test'+cast(@i as varchar)+'( '
set @CreateTableSql = @CreateTableSql + ' id int identity(1,1), '
set @CreateTableSql = @CreateTableSql + ' otherInfo nvarchar(2000) '
set @CreateTableSql = @CreateTableSql + ' ) '
exec(@CreateTableSql) -- 执行sql变量,创建表
set @i = @i + 1
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dr_zxp
2010-07-05 · TA获得超过861个赞
知道小有建树答主
回答量:765
采纳率:100%
帮助的人:853万
展开全部
declare @i int
set @i=0
while @i<10
begin
exec('create table Test Convert('+@i+',nvarchar(1))
(
id int primary key identity(1,1),
otherInfo nvarchar(2000)
)'
set @i=@i+1
end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wb1101684244
2010-07-05 · 超过11用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
太难了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式