我已使用这些说明启用了 Driver Tracing 。我正在运行 SQL Server 2014,它使用 2012 本机驱动程序。
我运行启动批处理文件,然后运行以下 LogParser 命令:
"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT SUBSTR(Field1, 0, 2) AS CountryCode, SUBSTR(TO_STRING(Field2), 0, 5) AS Zip INTO ZipCodes FROM 'c: \Users\jdearing\Downloads\us.txt'" -i:TSV -headerrow:OFF -o:SQL -server 。-数据库 LogParserTest -cleartable -transactionRowCount:0 -ignoreMinWarns:OFF
这将插入零行。而不是为每一行产生这个错误:
An error occurred while uploading data to SQL table
SQL State: 22001
Native Error: 0
Error Message: [Microsoft][ODBC SQL Server Driver]String data, right
truncation
停止跟踪后,etl 为 1024k,但根据此 logparser 查询没有行:
"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "SELECT * FROM 'SnacTrace_000001.etl'" -i:ETW
我注意到 providers.txt 批处理文件中的 GUIDS 与logman query providers | findstr SQL
echo {BA798F36-2325-EC5B-ECF8-76958A2AF9B5} 0xFFFFFFFF 128 SQLNCLI > providers.txt
echo {A9377239-477A-DD22-6E21-75912A95FD08} 0xFFFFFFFF 128 SQLNCLI10 >> providers.txt
echo {2DA81B52-908E-7DB6-EF81-76856BB47C4F} 0xFFFFFFFF 128 SQLNCLI11 >> providers.txt
相对
SQLNCLI.1 {BA798F36-2325-EC5B-ECF8-76958A2AF9B5}
SQLSERVER.09 {AB6D5EEB-0132-74AB-C5F5-B23E1644DADA}
SQLSERVER.10 {48D59D84-105B-00FA-6B49-03462F696737}
SQLSERVER.11 {B2A28C42-A7C2-1563-97CC-3BE49FDA19F9}
所以我将批处理文件更新为:
echo {BA798F36-2325-EC5B-ECF8-76958A2AF9B5} 0xFFFFFFFF 128 SQLNCLI > providers.txt
echo {48D59D84-105B-00FA-6B49-03462F696737} 0xFFFFFFFF 128 SQLNCLI10 >> providers.txt
echo {B2A28C42-A7C2-1563-97CC-3BE49FDA19F9} 0xFFFFFFFF 128 SQLNCLI11 >> providers.txt
仍然没有运气。我还能尝试什么?logparser 没有使用本机客户端吗?
尝试明确指定
-driver
选项,提供本机客户端的名称。我已经获得要在 ETL 中显示的数据。我做的两件事如下:
HKLM\software\Wow6432Node\Microsoft\BidInterface\Loader