我有一个像这样的 SQL Server 表
CREATE TABLE [dbo].[Service]
(
[SID] INT IDENTITY (1, 1) NOT NULL,
[LID] INT NOT NULL,
[RID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([SID] ASC),
CONSTRAINT [FK_dbo.Service_dbo.Location_LID]
FOREIGN KEY ([LID])
REFERENCES [dbo].[Locations] ([LID]) ON DELETE CASCADE,
CONSTRAINT [FK_dbo.Service_dbo.Rates_RID]
FOREIGN KEY ([RID])
REFERENCES [dbo].[Rates] ([RID]) ON DELETE CASCADE
)
我有一个 .csv
文件,它实际上是 3 列从 1 到 100000 的升序数字
例子:
1,1,1
2,2,2
3,3,3
它一直持续到 10 万行。
我正在尝试使用此查询通过 Visual Studio 通过 T-SQL 加载此 .csv
:
BULK INSERT service
FROM 'C:\service.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
我收到以下错误,我不知道为什么:
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 3 (RID).
最佳答案
诊断 BULK INSERT 问题的最简单方法是指定一个错误文件。错误文件将包含来自失败行的确切数据。根据 MSDN,您还将获得一个控制文件,该文件将标识每个失败的行并提供有关每个失败的详细信息。
BULK INSERT service
FROM 'C:\service.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n',
ERRORFILE = 'C:\ErrorFile.txt'
);
当您打开包含失败数据的错误文件时,请使用显示空白和不可打印字符或具有显示每个字符的字符代码的显示模式的文本编辑器。如果您有任何意想不到的字符,它们将会出现。
关于c# - 将 CSV 加载到 SQL Server 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041240/