Что -fixcolnames делает в log parser 2.2?
Я использую Logparser 2.2, чтобы попытаться перенести.csv, заполненный информацией счетчика производительности, в базу данных SQL, и я использую следующую команду командной строки:
logparser "Select * into IISCounters from C:\Logfiles\IIS_Log.csv" -i:CSV -o:SQL -server:MJNHNX4 -database:PerfmonCounters -driver:"SQL Server" -fixcolnames:ON -createTable:ON
Файл, который он просматривает, имеет довольно странные имена заголовков, например: \\perfiis06\network interfaceintel[r] pro_1000 mt network connection _2\bytes received/sec
а также \\perfiis06\network interfaceisatap.{3ab7a9d7-115b-4e2a-b7e3-613e431174a3}\bytes received/sec
поэтому ранее я просто находил и заменял все не буквенно-цифровые символы и вводил данные. Однако я стараюсь избегать этой работы в будущем (и я заметил, что анализатор журнала имеет -fixcolnames
переключатель, который якобы делает это).
Однако, когда я пытаюсь просто использовать этот переключатель, я получаю следующую ошибку:
[Microsoft][ODBC SQL Server Driver]Syntax error or access violation
Это не нарушение прав доступа, поскольку оно выполняется от имени администратора, который является DBO указанной базы данных, поэтому, скорее всего, это ошибка с именами столбцов. Это вызывает вопрос... что именно сделал -fixcolnames
делать?
1 ответ
Предполагается очистить имена полей (извлеченные из входного файла), чтобы соответствовать стандартному синтаксису SQL для имен столбцов. Это не говорит, однако, о вашей ошибке. Использование SQL Profiler может показать, что на самом деле происходит с взаимодействием с SQL Server.