【发布时间】:2013-02-07 17:04:05
【问题描述】:
到目前为止,我有这个代码:
declare @random int, @upper int, @lower int, @rndtb varchar(20)
set @lower = 1
set @upper = 999
select @random = ROUND(((@upper - @lower) * rand() + @lower),0)
select @rndtb = '##show'+cast(@random as varchar(20))+''
但这给了我
将 varchar 值“##show”转换为数据类型 int 时转换失败。
我想要实现的是每次执行查询时创建一个表##show+随机数。
例子:
##show01
##show78
##show43
使用@bluefeet 所说的进行编辑,并找到了一种使用
创建表格的方法Declare @SQL VarChar(1000)
SELECT @SQL = 'Create Table ' + @rndtb + '('
SELECT @SQL = @SQL + 'ID int NOT NULL Primary Key, FieldName VarChar(10))'
Exec (@SQL)
但是如何调用或插入这个表呢?
【问题讨论】:
-
我觉得你的问题主题和问题需要清理一下......它有点到处都是。
-
通过将答案合并到问题中,您使帖子变得混乱。例如,您修复了转换问题但没有删除错误消息,现在它没有意义了。但是,如果您确实删除了该消息,那么整个问题可能毫无意义,因为它可能不再看起来像一个问题。相反,如果您想展示您最终得到的结果,您应该将其发布为答案。
标签: sql sql-server temp-tables declare