Загрузка данных


SET XACT_ABORT ON;
BEGIN TRAN;

DECLARE @tip nvarchar(100), @kod int;
DECLARE @types TABLE (tip nvarchar(100));

INSERT INTO @types VALUES (N'certDUP'), (N'certERR');

DECLARE c CURSOR LOCAL FAST_FORWARD FOR
    SELECT tip FROM @types;

OPEN c;
FETCH NEXT FROM c INTO @tip;

WHILE @@FETCH_STATUS = 0
BEGIN
    IF NOT EXISTS (
        SELECT 1
        FROM dbo.spr_tipSend WITH (UPDLOCK, HOLDLOCK)
        WHERE tip = @tip
    )
    BEGIN
        IF COLUMNPROPERTY(
            OBJECT_ID(N'dbo.spr_tipSend'), N'kod', 'IsIdentity'
        ) = 1
        BEGIN
            INSERT dbo.spr_tipSend
                (tip, notet, subjectEm, body,
                 mapingTxt, fromEm, mapingTip)
            VALUES
                (@tip, N'Письмо МТС',
                 N'Текст формируется функцией dbo.MTS_StaticMail',
                 N'Текст формируется функцией dbo.MTS_StaticMail',
                 N'WR_mtsPublishMail_v13', N'Dasha',
                 N'WR_mtsPublishMail_v13');
        END
        ELSE
        BEGIN
            SELECT @kod = ISNULL(MAX(kod), 0) + 1
            FROM dbo.spr_tipSend WITH (UPDLOCK, HOLDLOCK);

            INSERT dbo.spr_tipSend
                (kod, tip, notet, subjectEm, body,
                 mapingTxt, fromEm, mapingTip)
            VALUES
                (@kod, @tip, N'Письмо МТС',
                 N'Текст формируется функцией dbo.MTS_StaticMail',
                 N'Текст формируется функцией dbo.MTS_StaticMail',
                 N'WR_mtsPublishMail_v13', N'Dasha',
                 N'WR_mtsPublishMail_v13');
        END;
    END;

    UPDATE dbo.spr_tipSend
    SET fromEm = N'Dasha',
        mapingTxt = N'WR_mtsPublishMail_v13',
        mapingTip = N'WR_mtsPublishMail_v13',
        subjectEm = N'Текст формируется функцией dbo.MTS_StaticMail',
        body = N'Текст формируется функцией dbo.MTS_StaticMail'
    WHERE tip = @tip;

    FETCH NEXT FROM c INTO @tip;
END;

CLOSE c;
DEALLOCATE c;

COMMIT;