2017-11-22 38 views
0

テキストファイルのデータを、bcpを使用して計算列を持つSQL Server 2016テーブルに挿入しようとしました。SQL Server:一括計算列のテーブルに一括挿入

私の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 SQL Serverのドライバ11] [SQL Serverの] Fehler BEI INSERT、 ダダイfolgendenのSET - 「QUOTED_IDENTIFIER」という特別なオプションがあります。 ÜberprüfenSIE、OBダイSET-OptionenエリーゼウントEN /オーデルIndizesエリーゼberechnete SPALTENウント/オーデルgefilterte Indizesウント/ Abfragebenachrichtigungenウント/オーデルのXML-Datentypmethodenウント/オーデルVorgängeエリーゼRA umliche Indizes richtigシンドオーデルVerwendungのMITのindizierte Sicht ダイ。 "QUOTED_IDENTIFIER":次のSETオプションが不適切な設定を持っているので、INSERTに失敗した失敗した

と英語

に BCPコピー。 SETオプションが、計算された列および/またはフィルタリングされたインデックスおよび/またはクエリ通知および/またはXMLデータ型のメソッドおよび/または空間インデックスオペレーションのインデックス付きビューおよび/またはインデックスで使用するのに適切であることを確認してください。

+0

QUOTED_IDENTIFIERをOFFに設定してBCPにエラーが発生している可能性があります。 [here](https://stackoverflow.com/questions/40487060/insert-failed-because-the-following-set-options-have-incorrect-settings-quoted)のように-qオプションを試してみてください。 –

答えて

0

その計算カラムとbcpがない別のテーブルが計算カラムの問題であることを確認しました。 次に、QUOTED_IDENTIFIERをONに設定したテーブル(計算列付き)を再作成しました.Jacobのコメントを参照してください。それでも動作しませんでした。 しかし、私はbcpを-qで起動したときにうまくいきました。ありがとう、Jacob!

関連する問題