openrowset 的具体语法我就不贴了,戳这里:https://msdn.microsoft.com/zh-cn/library/ms190312(v=sql.120).aspx
按照文档里面的样例来测试,首先创建一个文档 values.txt
1 Data 1 For 2 Data 2 For 3 Data 3 Fro
然后创建一个格式化文件 v.fmt ,具体非xml格式化文件的写法戳这里 :https://msdn.microsoft.com/zh-cn/library/ms191479(v=sql.120).aspx
9.0 2 1 SQLCHAR 0 10 "\t" 1 ID SQL_Latin1_General_CP1_CI_AS 2 SQLCHAR 0 10 "\r\n" 2 Desc SQL_Latin1_General_CP1_CI_AS
然后把这2文档都放在D盘的根目录下,然后执行
SELECT * FROM OPENROWSET( BULK 'D:\values.txt',FORMATFILE = 'D:\v.fmt') AS a;
然后挺萌的出现了 由于文件“D:\v.fmt”不完整或无法读取,无法进行大容量加载。操作系统错误代码为 (null)。
然后我找啊找 ……关键是错误代码是 Null 无法找啊!!!
最后……看到是因为不完整或无法读取,我确定原因应该是文件权限或者文件本身问题。然后我先将2个文件按照单行输出,都正常,确认不是文件权限的问题。
然后另外一个不完整。不完整这个,我唯一想到一次因为少了个换行导致不成功,然后我鬼使神差的在fmt文件最后加了一个换行……然后~重新执行!!成功啦!!!!!!
PS:别看说得轻松,实际调试了2个多小时/(ㄒoㄒ)/~~