原帖:
SQL 更新问题问题是我没有表达清楚,请直接看原帖13楼即可!---------------------------------------------------才发现【TravyLee】已经是版主了,恭喜哈!

解决方案 »

  1.   

    用一个语句试下
        declare @t varchar(100)
        
        update a SET 
    @t = stuff(replace(',' + a.TaskIDs + ',' ,',' + cast(d.ID as varchar(10)) + ',',',' + cast(b.ID as varchar(10)) + ',') ,1,1,'')
    ,TaskIDs = LEFT(@t,LEN(@t) -1 )
        FROM PMS_TaskAllocation a,PMS_Task b
        ,PMS_TaskAllocation c,PMS_Task d
        WHERE a.ProjectID = 14
        and b.ProjectID = 14
        and c.ProjectID = 6
        and d.ProjectID = 6
        and a.GUID = c.GUID
        and a.TaskIDs = c.TaskIDs
        and b.GUID = d.GUID
        and ',' + c.TaskIDs + ','  like '%,' + cast(d.id as varchar(10)) + ',%'    
      

  2.   

    试下这个    update a SET 
    TaskIDs = QQs = STUFF(X.ids.value('/R[1]','nvarchar(MAX)'),1,1,'')
        FROM PMS_TaskAllocation a inner join PMS_Task b
        on a.ProjectID = b.ProjectID
        cross apply (
    select ids = (
    select N';' + cast(d.id as varchar(10))
    from PMS_TaskAllocation c,PMS_Task d
    WHERE c.ProjectID = 6
    and d.ProjectID = 6
    and a.GUID = c.GUID
    and a.TaskIDs = c.TaskIDs
    and b.GUID = d.GUID
    and ',' + c.TaskIDs + ','  like '%,' + cast(d.id as varchar(10)) + ',%'
    order by d.id
    FOR XML PATH(''), ROOT('R'), TYPE
    )
    ) as x
      

  3.   

     update a        SET 
            TaskIDs = STUFF(X.ids.value('/R[1]','nvarchar(MAX)'),1,1,'')
        FROM PMS_TaskAllocation a inner join PMS_Task b
        on a.ProjectID = b.ProjectID
        cross apply (
            select ids = (
                select N',' + cast(d.id as varchar(10))
                from PMS_TaskAllocation c,PMS_Task d
                WHERE c.ProjectID = 6
                and d.ProjectID = 6
                and a.GUID = c.GUID
                and a.TaskIDs = c.TaskIDs
                and b.GUID = d.GUID
                and ',' + c.TaskIDs + ','  like '%,' + cast(d.id as varchar(10)) + ',%'
                order by d.id
                FOR XML PATH(''), ROOT('R'), TYPE
                )
            ) as x