到目前为止我有这个代码:
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)
但我如何调用或插入到这个表中呢?
由于您要添加参数@random
对于字符串,您需要将其转换为 varchar,以便可以将其连接到字符串部分:
select @rndtb = '##show'+cast(@random as varchar(20))+''
您的完整代码将是:
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))+''
根据您的编辑,您将需要使用动态 sql 插入到新表中:
select @SQL = 'insert into '+@rndtb+'
select *
from yourtable'
exec (@sql)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)