Я пытаюсь вставить данные из текстового файла в таблицу SQL Server 2016 с вычисленным столбцом с bcp.
Моя команда bcp:
bcp Test.dbo.myFirstImport IN D:\myFirstImport.txt -f D:\myFirstImport.xml –T
Моя таблица:
CREATE TABLE [dbo].[MyFirstImport](
[PersonID] [smallint] NULL,
[FirstName] [varchar](25) NULL,
[LastName] [varchar](30) NULL,
[BirthDate] [date] NOT NULL,
[YearMonthCom] AS (datepart(year,[BirthDate])*(100)+datepart(month,[BirthDate])) PERSISTED
) ON [PRIMARY]
Мои данные (вкладка разделена):
1 Anthony Grosse 1980-02-23
2 Alica Fatnowna 1963-11-14
3 Stella Rosenhain 1992-03-02
Мой файл формата:
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="7"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="25" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="11"/>
<!--
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="11"/>
<FIELD ID="5" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="12"/>
-->
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="PersonID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="FirstName" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="3" NAME="LastName" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="4" NAME="BirthDate" xsi:type="SQLDATE"/>
<!--
<COLUMN SOURCE="5" NAME="YearMonthCom" xsi:type="SQLINT"/>
-->
</ROW>
</BCPFORMAT>
Моя ошибка
SQLState = 37000, NativeError = 1934 Ошибка = [Microsoft] [драйвер ODBC 11 для SQL Server] [SQL Server] Fehler bei INSERT, da die folgenden SET-Optionen falsche Einstellungen aufweisen: «QUOTED_IDENTIFIER». Überprüfen Sie, ob die SET-Optionen für die Verwendung mit indizierte Sicht en und / oder Indizes für berechnete Spalten und / order gefilterte Indizes und / oder Abfragebenachrichtigungen und / oder XML-Datentypmethoden und / oder Vorgänge für rä umliche Indizes richtig sind , Ошибка BCP в неудачной
И на английском языке
INSERT не удалось, потому что следующие параметры SET имеют неправильные настройки: «QUOTED_IDENTIFIER». Убедитесь, что параметры SET верны для использования с индексированными представлениями и / или индексами для вычисляемых столбцов и / или отфильтрованных индексов и / или уведомлений запросов и / или методов типа данных XML и / или пространственных индексов
Я создал другую таблицу без этого вычисленного столбца, а bcp работал, просто чтобы убедиться, что это проблема с вычисленным столбцом. Затем я воссоздал таблицу (с вычисленным столбцом) с QUOTED_IDENTIFIER, установленным в ON - см. Комментарий Джейкоба, - и это все еще не сработало. Но когда я начал bcp с -q, это сработало. Так что спасибо, Джейкоб!