散装负载转换错误(截断)..缺少明显的东西



我的表格定义为:

CREATE TABLE [ThirdPartyData].[AdsTxtFile](
    [DomainHostName] [varchar](200) NOT NULL,
    [Expires] [datetime] NOT NULL,
    [Advertiser] [varchar](200) NOT NULL,
    [AdvertiserId] [varchar](50) NOT NULL,
    [AdvertiserType] [varchar](20) NOT NULL,
    [TAGId] [varchar](100) NULL,
    CONSTRAINT [PK_AdsTxtFile] PRIMARY KEY CLUSTERED 
        (
        [DomainHostName] ASC,
        [Advertiser] ASC,
        [AdvertiserId] ASC
        )
)

我试图将文件插入此表中。文件的前几行是:

roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)google.com(TAB)pub-1301581561755234(TAB)DIRECT(TAB)f08c47fec0942fa0
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)indexexchange.com(TAB)184046(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)indexexchange.com(TAB)183430(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)indexexchange.com(TAB)184124(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)indexexchange.com(TAB)182270(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)appnexus.com(TAB)7287(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)amazon-adsystem.com(TAB)3049(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)Kargo.com(TAB)114(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)Kargo.com(TAB)115(TAB)DIRECT(TAB)
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)openx.com(TAB)537114802(TAB)DIRECT(TAB)a698e2ec38604c6
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)rubiconproject.com(TAB)7791(TAB)DIRECT(TAB)0bfd66d529a55807
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)rubiconproject.com(TAB)15896(TAB)DIRECT(TAB)0bfd66d529a55807
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)rubiconproject.com(TAB)11636(TAB)DIRECT(TAB)0bfd66d529a55807
roadandtrack.com(TAB)9/13/2017 12:00:00 AM(TAB)teads.tv(TAB)10237(TAB)DIRECT(TAB)15a9c44f6d26cbe1

我已经用(TAB)替换了文件中的选项卡字符,以供本文中的可见性,但它们是文件本身中的实际选项卡字符。文件中的每一行均由newline字符终止。

我在SQL Server中运行以下命令:

BULK INSERT [ThirdPartyData].[AdsTxtFile] FROM 'MyFileLocation.txt'

我得到一个例外,如下:

System.Data.SqlClient.SqlException (0x80131904): Bulk load data conversion error (truncation) for row 1, column 6 (TAGId).
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

...现在我正在挠头,因为我的理解是,第一行的 TAGId是批量插入命令的默认终结者,而" F08C47FEC0942FA0"的" F08C47FEC0942FA0"肯定不会超过100个字符长度,所以我不知道问题是什么。谁能告诉我我做错了什么?

好吧,我读到的文档建议默认行终止是newline或lineFeed cartem( n)...但似乎并非如此。一旦我将线路结尾更改为运输返回lineFeed( r n),它就起作用了。