gpt4 book ai didi

sql - 使用随机生成的数字创建临时表名

转载 作者:行者123 更新时间:2023-12-02 03:49:58 24 4
gpt4 key购买 nike

到目前为止,我有这个代码:

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))+''

但这给了我

Conversion failed when converting the varchar value '##show' to data type int.



我想要实现的是每次执行查询时创建一个表##show+random number。

例子 :
##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)

关于sql - 使用随机生成的数字创建临时表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14756780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com