[英]SQL Server: Bulk Insert into table with computed column
我嘗試將文本文件中的數據插入 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 Driver 11 for 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/oder gefilterte Indizes und/oder Abfragebenachrichtigungen und/oder XML-Datentypmethogemändärl BCP 復制失敗
和英文
INSERT 失敗,因為以下 SET 選項的設置不正確:“QUOTED_IDENTIFIER”。 驗證 SET 選項是否正確用於計算列上的索引視圖和/或索引和/或過濾索引和/或查詢通知和/或 XML 數據類型方法和/或空間索引操作
我創建了另一個沒有該計算列的表,並且 bcp 可以工作,只是為了確定這是計算列的問題。 然后我重新創建了表(帶有計算列),並將 QUOTED_IDENTIFIER 設置為 ON - 請參閱 Jacob 的評論 - 但它仍然不起作用。 但是當我用 -q 啟動 bcp 時它起作用了。 所以謝謝你,雅各布!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.