我必须使用OpenRowSet将CSV数据加载到SQL Server表中。 我已经安装了AccessDatabaseEngine_X64.exe,Access和SQL Server 2014都是64位的。 同时启用以下设置,
sp_configure 'show advanced options', 1
reconfigure with override
sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure with override
INSERT INTO dbo.Test
SELECT * FROM OPENROWSET('MSDASQL'
,'Driver={Microsoft Access Text Driver (*.txt,*.csv)}','select * fromD:\MYDATA\go\test.CSV')
数据也被加载到表中,但我在CSV中的一些行的数据多于表格(Test)中定义的数据,我不想在表格中更改列大小(测试)因此SQL开始提供与截断相关的错误。在不使用OpenRowSet的情况下,我曾经使用"设置ANSI警告关闭"做无声截断。但是使用OpenRowSet,如果我使用此命令,则会出现以下错误
异构查询需要为连接设置ANSI_NULLS和ANSI_WARNINGS选项。这确保了一致的查询语义。启用这些选项,然后重新发出查询。
我想使用OpenRowSet,因为它非常快。所以任何人都可以帮助我如何使用OpenRowSet进行静默截断。