• I couldn't get it to work without a minor tweak.

    I changed the following snippets...

    SELECT @ConctColNme = CASE WHEN @IdentityColumn = @ColumnName

    THEN ''

    ELSE @ConctColNme + @ColumnName + ','

    END

    SELECT @DeclareCol = CASE WHEN @IdentityColumn = @ColumnName

    THEN @DeclareCol

    ELSE @DeclareCol + '@'+@ColumnName +' '+ @DataType +CASE WHEN @CharacterLen IS NOT NULL THEN '('+@CharacterLen+')' ELSE '' END + ','

    END

    SELECT @DeclareCol2 = CASE WHEN @IdentityColumn = @ColumnName

    THEN ''

    ELSE @DeclareCol2 + '@'+@ColumnName + ','

    END

    SELECT @DeclareCol3 = CASE WHEN @IdentityColumn = @ColumnName

    THEN ''

    to

    SELECT @ConctColNme = CASE WHEN @IdentityColumn = @ColumnName

    THEN @ConctColNme

    ELSE @ConctColNme + @ColumnName + ','

    END

    SELECT @DeclareCol = CASE WHEN @IdentityColumn = @ColumnName

    THEN @DeclareCol

    ELSE @DeclareCol + '@'+@ColumnName +' '+ @DataType +CASE WHEN @CharacterLen IS NOT NULL THEN '('+@CharacterLen+')' ELSE '' END + ','

    END

    SELECT @DeclareCol2 = CASE WHEN @IdentityColumn = @ColumnName

    THEN @DeclareCol2

    ELSE @DeclareCol2 + '@'+@ColumnName + ','

    END

    SELECT @DeclareCol3 = CASE WHEN @IdentityColumn = @ColumnName

    THEN @DeclareCol3

    Our tables are designed with an identity field at the end and since the variables are set with '' when it finds the identity field it doesn't work. The variable has to be reassigned to itself.