spBulkUpdate_ClientClassYears

Parameters

Parameter Parameter Type Mode Description
@ClientsID int IN
@XML ntext IN

Definition

Copy


CREATE  PROCEDURE spBulkUpdate_ClientClassYears (
    @ClientsID as integer,
    @XML as ntext
)
AS
DECLARE @idoc int

BEGIN TRANSACTION

EXEC sp_xml_preparedocument @idoc OUTPUT, @XML

DELETE FROM ClientClassYears 
WHERE ClientsID=@ClientsID AND ID NOT IN ( SELECT DISTINCT ClientClassYearsID FROM ClassYearNotes )

DECLARE myCursor CURSOR LOCAL FOR SELECT * FROM OPENXML (@idoc, '/classyearlist/classyear',1
    WITH ( ClassYearName nvarchar(10) '@name'
           ClassYearsGuid uniqueidentifier '@guid' )

DECLARE @Name nvarchar(10), @Guid uniqueidentifier

OPEN myCursor

FETCH NEXT FROM myCursor INTO @Name, @Guid
WHILE (@@FETCH_STATUS <> -1)
BEGIN
    IF (@@FETCH_STATUS <> -2)
    BEGIN
    IF NOT EXISTS( SELECT ID FROM ClientClassYears WHERE ClientsID=@ClientsID AND Guid=@Guid )
    BEGIN
            INSERT INTO ClientClassYears ( Name, Guid, ClientsID )
        VALUES ( @Name, @Guid, @ClientsID )
    END
    END
    FETCH NEXT FROM myCursor INTO @Name, @Guid
END

CLOSE myCursor
DEALLOCATE myCursor

COMMIT TRANSACTION

EXEC sp_xml_removedocument @idoc