#sql #sql-server #database #ms-access
#sql #sql-server #База данных #ms-access
Вопрос:
Я только недавно перевел нас из базы данных прямого доступа в интерфейс Access и серверную часть SQL Server со связанной таблицей. Мы переходим с Access 2007 на SQL Server 17 (в настоящее время Express, но вскоре станет стандартным).
У меня есть несколько запросов «Выбрать запрос (реплицированный)», которые мы использовали в Access, которые я хочу преобразовать для прохождения через запросы в новом интерфейсе связанного доступа.
Однако я не уверен, почему это не работает aleady. Это представление SQL в Access (имя таблицы было ADDRESSES
)
SELECT ADDRESSES.STEXT,
ADDRESSES.COMPANY,
ADDRESSES.ADDRESS,
ADDRESSES.CITY,
ADDRESSES.STATE,
ADDRESSES.[MAIL-DATE],
ADDRESSES.ORDER,
ADDRESSES.[IN-DATE],
ADDRESSES.[CHK-DATE],
ADDRESSES.VERIFIER,
ADDRESSES.DNC
FROM ADDRESSES
WHERE(((ADDRESSES.STEXT) Like "schlawoffice*"));
Теперь в SQL имя таблицы dbo.MSTR-SENT
вместо ADDRESSES
. Как бы мне сделать этот SQL Server совместимым для нового сквозного запроса? Просто меняем имя таблицы?
Спасибо
Комментарии:
1. Почему бы вам не попробовать это? Что произойдет, если вы измените
ADDRESSES
наdbo.MSTR-SENT
? Вы пробовали это?2. Также синтаксис для LIKE такой: Like ‘schlawoffice%’, см. learn.microsoft.com/en-us/sql/t-sql/language-elements /…
3. Я действительно пробовал это, и вы правы насчет синтаксиса, который был оплошностью.
4. Совершенно не по теме, но такого понятия, как «SQL Server 17», не существует. Выпуск, который упакован как SQL Server 2017, — это SQL Server версии 14. В 1998 году Microsoft выпустила последнюю номерную версию SQL Server 7. После этого они начали называть выпуски с указанием года их выхода, поэтому версия 8 SQL Server известна как SQL Server 2000. Сумасшедший? ДА. Но в SSMS вы можете увидеть числовую версию сразу после имени сервера в обозревателе объектов. Вот неофициальный официальный список сборки
5. Что ж, это все еще действительно интересно! Пока существует корреляция, я думаю, это не имеет большого значения.
Ответ №1:
Вы должны привыкнуть использовать псевдонимы. Это может превратить текстовую стену во что-то, что легко читается. Также вам следует избегать использования зарезервированных слов в качестве имен столбцов или объектов. И последнее, но не менее важное, я бы предложил не использовать специальные символы в именах таблиц. Используйте буквенные символы (и только цифры, если вам абсолютно необходимо их использовать, чего почти никогда не должно быть).
Ваш запрос в sql server будет выглядеть следующим образом.
SELECT s.STEXT
, s.COMPANY
, s.[ADDRESS]
, s.CITY
, s.[STATE]
, s.[MAIL-DATE]
, s.[ORDER]
, s.[IN-DATE]
, s.[CHK-DATE]
, s.VERIFIER
, s.DNC
FROM dbo.[MSTR-SENT] s
WHERE s.STEXT Like 'schlawoffice%'
Комментарии:
1. Спасибо, я понимаю. Я не был по-настоящему знаком с псевдонимами, это действительно интересно. Мне нужно будет прочитать об этом подробнее. В исходном запросе Access набор данных доступен для редактирования и может быть добавлена новая строка, хотя в сквозном запросе набор записей не редактируется. Я предполагаю, что мне пришлось бы использовать другой подход?
2. Да, вам нужно будет выполнить инструкцию update для обновления данных.
3. Большое вам спасибо! Вы оказали большую помощь