在sql server 2008中使用查询插入5000条记录

时间:2014-04-25 06:21:34

标签: sql sql-server sql-server-2008

我有员工及其评级表:

ID        EmployeeId   RatingHr  RatingMgr   RatingTL  SelfRating     

1           E1           1        1           1        1         
2           E2           3        3           3        3 
3           E3           5        5           5        5 
4           E4           7        7           7        7 
5           E5           9        9           9        9 
6           E6           1        1           1        1         
7           E7           3        3           3        3 
8           E8           5        5           5        5 
9           E9           7        7           7        7 
10          E10          9        9           9        9
.           .            .        .           .        . 
.           .            .        .           .        .
1000        E1000        9        9           9        9

我想像这样插入高达1000的记录。 我应该怎么做。

2 个答案:

答案 0 :(得分:3)

insert into YourTable(ID, EmployeeId, RatingHr, RatingMgr, RatingTL, SelfRating)
select T.N,
       'E'+cast(T.N as varchar(10)),
       ((T.N * 2) - 1) % 10,
       ((T.N * 2) - 1) % 10,
       ((T.N * 2) - 1) % 10,
       ((T.N * 2) - 1) % 10
from  (
      select top(1000) row_number() over(order by 1/0)
      from sys.all_objects as o1, sys.all_objects as o2
      ) as T(N)

答案 1 :(得分:0)

尝试以下答案。根据需要添加额外的列 -

declare @start int = 0
declare @end int = 1001
declare @no int = 0
create table ##emps(ID int null, 
EmployeeId varchar(50) null, 
RatingHr int null)
while(@start < @end)
begin 
set @start = @start + 1
set @no = ((@start * 2) - 1) % 10
insert into ##emps(ID, EmployeeId, RatingHr)
values(@start, ('E' + convert(varchar(5), @start)), @no)
end

顺便说一下,## emps是一个全局临时表。如果需要,您可以使用常规表替换它。