我有一张每晚都会重写的表格。我有两列需要用一组值列表中的随机数填充。角度列需要填充 15,30,45,60,90,距离需要填充 9,15,21。插入语句最多可以处理 700 条记录。
我已经尝试创建一个临时表(@MyRandomVal1
)
select 15 union
select 30 union
select 45 etc...
然后使用 ( select top 1 val from @MyRandomVal1 order by newid()
)。这会为所有行使用相同的随机数填充列。似乎我可能需要遍历插入的行,以便它select top 1 val from @MyRandomVal1 order by newid()
为每一行运行 (),但是在我的研究中,我读到不推荐使用循环。是否有另一种方法可以在插入期间从集合列表中随机抽样填充 700 多行?
以下是我现有的代码(仅用于角度)。SQL 服务器 2012。
DECLARE @MyRandomVal1 Table (
id int identity (1,1),
val int not null)
INSERT INTO @MyRandomVal1 (val)
SELECT 15
union
SELECT 30
union
SELECT 45
union
SELECT 60
union
SELECT 90
INSERT INTO MyTable (AUTO_KEY,E3_KEY,EMPID,ENAME,COLOR,ANGLE)
SELECT dbo.getautokey(),dbo.GetAutoKey(),[EMPID],[ENAME],abs(checksum(NewId()) % 256),(select top 1 val from @MyRandomVal1 order by newid())
FROM MyTable2 WHERE [JOBLEVEL]='SVP'
谢谢。