Jeg kom her, før jeg ledte efter en løsning til masseindsættelse af specialtegn. Kunne ikke lide løsningen med UTF-16 (det ville fordoble størrelsen af csv-filen). Jeg fandt ud af, at du bestemt KAN, og det er meget nemt, du gør det Jeg har ikke brug for en fil i formatet. Dette svar er til andre, der leder efter det samme, da det ikke ser ud til at være dokumenteret godt nogen steder, og jeg tror, at dette er et meget almindeligt problem for ikke-engelsktalende mennesker. Løsningen er:bare tilføj CODEPAGE='65001' inde i med-erklæringen for bulk-indsatsen. (65001=kodesidenummer for UTF-8). Virker muligvis ikke for alle unicode-tegn som foreslået af Michael O, men det fungerer i det mindste perfekt til latin-udvidet, græsk og kyrillisk, sikkert også mange andre.
Bemærk:MSDN-dokumentationen siger, at utf-8 ikke understøttes, tro det ikke, for mig fungerer dette perfekt i SQL server 2008, prøvede dog ikke andre versioner.
f.eks.:
BULK INSERT #myTempTable
FROM 'D:\somefolder\myCSV.txt'+
WITH
(
CODEPAGE = '65001',
FIELDTERMINATOR = '|',
ROWTERMINATOR ='\n'
);
Hvis alle dine specialtegn er i 160-255 (iso-8859-1 eller windows-1252), kan du også bruge:
BULK INSERT #myTempTable
FROM 'D:\somefolder\myCSV.txt'+
WITH
(
CODEPAGE = 'ACP',
FIELDTERMINATOR = '|',
ROWTERMINATOR ='\n'
);