2017-02-13 6 views
3

Я пытаюсь понять, почему команда BULK INSERT, которую я использую, не распознает параметры FORMAT и FIELDQUOTE, используемые в команде.Неверный синтаксис около формата в BULK INSERT?

BULK INSERT dbo.tblM2016_RAW_Current_Import_File 
FROM '\\x\tms\SCADA.dat' 
WITH 
(
    FIRSTROW = 1, 
    FORMAT = 'CSV', 
    FIELDQUOTE = '"', 
    FIELDTERMINATOR = '\t', 
    ROWTERMINATOR = '\n' 
) 

По некоторым причинам, я получаю сообщение об ошибке:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near 'FORMAT'.

Добавление: FORMAT показывает в розовый текст в SSMS, FIELDQUOTE показывает в черном тексте, остальные показывают в синем тексте , По-видимому, команда не распознает FORMAT и FIELDQUOTE как ключевые слова по какой-то причине.

+1

Вы уверены, что используете соединение с сервером 2016, поддерживающим эту новую функцию? –

+0

Да, я уверен. Вот вывод переменной версии. Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64) 29 апреля 2016 23:23:58 Copyright (c) Microsoft Corporation Standard Edition (64-> бит) в Windows Server 2012 R2 Standard 6.3 (сборка 9600:) (Hypervisor) ' – Jake

+0

На самом деле, похоже, я ошибся - я не думаю, что это тоже в 2016 году. Я думаю, что он работает только в том, что в настоящее время рекламируется как «vNext». –

ответ

8

Спецификации FORMAT и FIELDQUOTE, к сожалению, пока недоступны на производственных серверах.

По the documentation:

Input file format options
FORMAT = 'CSV'
Applies to: SQL Server vNext CTP 1.1.
Specifies a comma separated values file compliant to the RFC 4180 standard.

FIELDQUOTE = 'field_quote'
Applies to: SQL Server vNext CTP 1.1.

ПРИМЕЧАНИЕ: Этот ответ датирован 13 февраля 2017. В какой-то момент «SQL Server vNext» перестанет быть CTP и стать сервером продукции. Вопрос, однако, связан с SQL Server 2016, который, таким образом, не обладает этими функциями.