如何在Sql Server 2005中实现批量插入功能

我在数据库中有一个名为user的表,其中包含以下条目。
Userid FirstName LastName
1          fa      la
2          fb      lb
3          fc      lc
和另一个表userform
Userformid Userid  Form   Code modifieddate  Isclosed   IsForm 
1             1     ff     cc     somedate     0           0
2             1     gg     rr     somedate     0           0
3             1     bb     bb     somedate     0           0
4             2     ss     aa     somedate     0           0
5             2     qq     sa     somedate     0           0
6             3     ws     xc     somedate     0           0
现在我必须为userform表中的每个userid插入新记录,并且只有Formform和Code列才能从userform表中插入行中,只能通过最新的modifieddate复制(类似于: - order by modifieddate desc。)
Output should be in userform table :
    Userformid Userid  Form   Code modifieddate  Isclosed   IsForm 
    1             1     ff     cc     somedate     0           0
    2             1     gg     rr     somedate     0           0
    3             1     bb     bb     somedate     0           0
    4             2     ss     aa     somedate     0           0
    5             2     qq     sa     somedate     0           0
    6             3     ws     xc     somedate     0           0
newly added row
    7             1     bb     bb     newdate     0           0
    8             2     qq     sa     newdate     0           0
    9             3     ws     xc     newdate     0           0
用户表和userform表中有6000条记录。 我们如何使用批量插入功能或在sql server 2005中使用任何其他技术来实现这一点。我不想使用CURSOR。     
已邀请:
这样的事情,使用ROW_NUMBER应该可以解决问题。首先尝试不使用INSERT来检查它返回的结果。如果那就是你想要的,只需取消注释INSERT行并继续。
DECLARE @NewDate DATETIME
SET @NewDate = GETDATE()

--INSERT UserForm (UserId, Form, Code, modifieddate, IsClosed, IsForm)
SELECT UserId, Form, Code, @NewDate, IsClosed, IsForm
FROM
(
    SELECT ROW_NUMBER() OVER (PARTITION BY UserId ORDER BY modifieddate DESC) AS RowNo, 
        UserId, Form, Code, IsClosed, IsForm
    FROM UserForm 
) x
WHERE RowNo = 1
    

要回复问题请先登录注册