MSCEWI4032

Bulk Insert Partially Translated

Severity

High

Description

This EWI is added to a literal that was originally a concatenation, when the contained code had a BULK INSERT statement. The PUT command resulting from the BULK INSERT translation is not supported when executing code that was originally Dynamic SQL.

For this reason, the PUT command must be extracted from the output code and executed manually outside of the procedure that contains it. Keep in mind that if there are many BULK INSERT statements in Dynamic SQL sentences within the procedure, it is advised to split this procedure in order to be able to manually execute the corresponding PUT command for each translated BULK INSERT.

Code Example

Input Code:

CREATE PROCEDURE  [dbo].[Demo_Proc]
AS
    BEGIN
        ...
        ...
        SET @a = 'BULK INSERT ' + @e + ' FROM '''
            + @b + '''';
        EXEC (@a);
    END;

Output Code:

Recommendations

  • Extract the PUT command that resulted from the Dynamic BULK INSERT statement, and execute it before calling the procedure.

  • If you need more support, you can email us at [email protected]

Last updated