Команда OpenRowSet в TSQL возвращается, АННУЛИРУЕТ

Маловероятно, что "со" сделал бы код выполненным быстрее, более вероятно, что компилятор скомпилировал бы его в тот же исполняемый код.

главная причина, с которой не любят люди, состоит в том, что это может представить беспорядок об объеме пространства имен и приоритете.

существуют случаи, когда это - реальная проблема и случаи, когда это - надуманный вопрос (случаи надуманного вопроса были бы как описаны в вопросе, как "используется разумно").

из-за возможного беспорядка, некоторые разработчики принимают решение воздержаться от использования "с" полностью, даже в случаях, где не может быть такого беспорядка. Это может казаться догматичным, однако можно утверждать, что, поскольку код изменяется и растет, использование "с" может остаться даже после того, как код был изменен до степени, которая сделает "с" запутывающим, и таким образом лучше не представить свое использование во-первых.

6
задан StevenMcD 26 August 2009 в 12:45
поделиться

4 ответа

Я заметил, что вы используете драйвер ODBC для Excel. Вы пробовали JET OLEDB Provider с эквивалентной строкой подключения?

select * from openrowset(
    'Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\ImportFile.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"',
    'SELECT * FROM [Sheet1$]')

EDIT: Извините, только что заметил ваш последний абзац. Конечно, драйвер ODBC Excel по-прежнему работает через механизм JET, так какая разница?

РЕДАКТИРОВАТЬ: Я просмотрел ссылку KB194124, и рекомендуемые ею значения реестра являются значениями по умолчанию на моем компьютере, которые Я никогда не менялся. Я сам несколько раз использовал вышеуказанный метод без проблем. Может, это экологическая проблема?

6
ответ дан 10 December 2019 в 02:51
поделиться

Если вы не против открыть файл в Excel, возьмите столбцы, в которых возникла проблема, выберите столбец и выполните

Данные -> Текст в столбцы -> Далее -> Далее -> Текст

. Сохраните электронную таблицу, и все они должны появиться в виде текста в OPENROWSET

. Я обнаружил, что используются файлы .CSV вместо Excel, открытые путем настройки связанного сервера и настройки формата Файлы в schema.ini представляют собой более практичный подход для обработки такого импорта, с помощью этого метода вы можете явно выбрать формат каждого столбца.

2
ответ дан 10 December 2019 в 02:51
поделиться

Мы столкнулись с той же проблемой. К сожалению, мы тоже не нашли решения. Дополнительная информация здесь , которая указывает на то, что может быть исправление реестра.

1
ответ дан 10 December 2019 в 02:51
поделиться

У меня была такая же проблема. Я исправил вырезание и вставку строки, содержащей столбец со строковым / числовым значением (например, 123ABC) в позиции первой строки листа. По какой-то причине T-SQL читает первую строку и предполагает, что все значения являются числовыми.

0
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: