Как мне создать ссылку Jet ODBC на представление SQL Server с точками в именах полей?
-
03-07-2019 - |
Вопрос
Мне нужно создать ссылку ODBC из базы данных Access 2003 (Jet) на представление, размещенное на SQL Server, которое содержит псевдонимные имена полей, содержащие такие периоды, как:
Seq.Group
В исходном коде SQL за представлением имена полей заключены в квадратные скобки...
SELECT Table._Group AS [Seq.Group]
...таким образом, SQL Server не жалуется на создание представления, но когда я пытаюсь создать ODBC-ссылку на него из Jet DB (программно или через пользовательский интерфейс Access 2003), я получаю сообщение об ошибке:
'Seq.Group' - недопустимое имя.Убедитесь , что в нем нет недопустимых символов или знаков препинания и что оно не слишком длинное.
К сожалению, я не могу изменить структуру представления, потому что это часть другого продукта, поэтому я придерживаюсь названий полей такими, какие они есть.Я мог бы добавьте мое собственное представление с именами полей без знаков препинания, но я бы действительно предпочел вообще не изменять SQL Server, потому что тогда это становится еще одной точкой обслуживания при каждом обновлении, исправлении и т.д.Кто-нибудь знает лучшее решение?
Решение
Хотя технически мне не удалось избежать точки, на самом деле ваше предложение сделал заставь меня осознать другую альтернативу.Пока я размышлял, как бы мне "передать" escape-код на сервер "SQL", меня осенило:Почему бы не использовать "Сквозной запрос SQL" вместо связанной с ODBC таблицы?Поскольку мне нужен только доступ на чтение к данным SQL Server, это работает нормально!Спасибо!
Другие советы
Просто догадываюсь здесь:вы пробовали избежать точки?Что-то вроде "[Seq\.Group]"?
Другим предложением было бы добавить новое представление на ваш sql server, не изменяя существующее.Даже если ваше первоначальное представление является частью "решения", ничто не запрещает вам добавлять новые представления:
SELECT Table._Group AS [Seq_Group]