Я использую 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
Это не нарушение прав доступа, потому что он работает под администратором, который является администратором базы данных указанной базы данных, поэтому, скорее всего, это ошибка с именами столбцов. Возникает вопрос ... что именно сделал -fixcolnames
делать?
Предполагается, что имена полей (извлеченные из входного файла) будут очищены, чтобы они соответствовали стандартному синтаксису SQL для имен столбцов. Однако это мало что говорит о вашей ошибке. Использование SQL Profiler может показать, что на самом деле происходит с взаимодействием с SQL Server.