首页 > 解决方案 > 将列表中的随机字符串插入表中

问题描述

我正在尝试将随机部门名称插入到 SQL Server 表中。目前我有下面的代码。当我用样本数据填充表格时,我希望随机插入列出的四个部门值(comp sci、生物学、心理学、化学)中的任何一个。任何帮助,将不胜感激

Declare @SID int
Set @SID = 1

/* Create temporary table to insert random department name 
declare @myList table (Dept varchar(50))
insert into @myList values ('Computer Science'), ('Biology'), ('Psychology'), ('Chemistry')*/

While @SID <= 12000
Begin 
   Insert Into Student values ('Student', CAST(@SID as nvarchar(10)), 'Department' + CAST(@SID as nvarchar(10)), '50')
   Print @SID
   Set @SID = @SID + 1
End

标签: sqlsql-servertsql

解决方案


使用 a select(而不是values)从您创建的列表中进行选择并插入top 1排序依据newid()

   --insert into dbo.Student (Name, id, Department, Position)
   select top 1 'Student', CAST(@SID as nvarchar(10)), Dept, '50'
   from @myList
   order by newid();

注意:最好的做法是列出所有插入的列。


推荐阅读