KB3172671 - FIX: BULK INSERT or OPENROWSET import wrong data if UTF-8 encoded file does not have a BOM in SQL Server 2016

Applies To
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptoms

Assume that you use the BULK INSERT or the OPENROWSET(BULK...) statement to import UTF-8 encoded data from a file that doesn't have a byte-order mark (BOM) in Microsoft SQL Server 2016. If the first two bytes in the file are equal to "0xEFBB", the first character will be wrongly recognized as a BOM. As a result, the imported data is incorrect, and you don't receive an error message about it.

Resolution

The issue was first fixed in the following cumulative update of SQL Server:

Recommendation: Install the latest cumulative update for SQL Server

Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. We recommend that you download and install the latest cumulative updates for SQL Server:

      

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References

Learn about the terminology that Microsoft uses to describe software updates.