Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 17.03.2016
Сообщений: 234

Синтаксис в простом запросе (скобки, точки, dbo)

28.10.2019, 13:30. Показов 8603. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем Привет. Использую MS SQL Server 2012.
Например запрос:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT TOP 1000
 
   [Id]
  ,[FirstName]
  ,[MiddleName]
  ,LastName
  ,CreatedOn
 
--FROM [MY_DB].[dbo].[ContactBase]
FROM MY_DB..ContactBase
 
ORDER BY CreatedOn DESC
У меня пару простеньких вопросов. Нагуглить не получилось, так как не знаю, что гуглить.

1) подскажите почему поля в выборке можно писать либо в квадратных скобках (например [Id]), либо без скобок (например LastName) ? Это просто синтаксис или есть какое то объяснение?

2) ну и аналогично я могу написать так (FROM [MY_DB].[dbo].[ContactBase]) , или так (FROM MY_DB..ContactBase). А что такое dbo ? dbo и две точки это синонимы для данной СУБД ?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2019, 13:30
Ответы с готовыми решениями:

Ошибка в простом запросе
Здравствуйте. Не проходит запрос, ошибки: Warning: mysqli_query() expects parameter 1 to be mysqli, null given in...

Ошибка в простом запросе
use CourseWorkDianov Insert into Object_Type(id_object_type, object_type, id_object_kind) select ID, , (select id_object_kind from...

Проблема в простом select запросе
Вот скрин (слева запрос, справа таблица, снизу - результат) Что за лажа?

3
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
28.10.2019, 14:07
https://docs.microsoft.com/ru-... rver-ver15
https://docs.microsoft.com/ru-... rver-ver15
1
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
28.10.2019, 14:39
Лучший ответ Сообщение было отмечено alex_7 как решение

Решение

0) Привыкайте писать выражение в TOP в круглых скобках. TOP(1000).
Синтаксис без скобок давно объявлен устаревшим. В один очень прекрасный момент работать без скобок перестанет.

1) Просто имя объекта БД можно писать, если оно не содержит недопустимых символов, например, пробел.
Если имя содержит недопустимые символы, то по стандарту ANSI его надо заключать в двойные кавычки. В MSSQL это работает, если установлен параметр SET QUOTED_IDENTIFIER ON
Microsoft придумал свой способ писать такие имена - окружать их квадратными скобками. Это уже не зависит от каких-либо параметров сеанса.
Однако, вам может придти мысль написать имя, содержащее в свою очередь квадратные скобки??
Тогда придётся их некоторым образом удваивать. Рекомендую такое имя поместить в запрос SELECT QUOTENAME(N'ИмяСКвадратнымиСкобками').
Вернётся имя в том виде, в котором его следует писать в запросах.

3) Имя объектов БД в общем случае четырёхкомпонентное: Сервер.База.Схема.Объект.
Если сервер локальный, первую часть можно не писать.
Если база текущая, вторую часть можно не писать (как минимум, если пропущен сервер).
Если пропустить схему, (..), то точки надо обязательно оставить, если указана база, а схема будет,
если не изменяет память, искаться по определённому алгоритму (подробности уже не помню).
Короче, если задать конкретную схему в имени таблицы, то это несколько ускорит обработку запроса.
К тому же будет уверенность в том, что запрос выполняется из той таблицы, которая нужна.

Попробовал сейчас найти в справке Microsoft правила наименования объектов, и не нашёл!!
До того тупая теперешняя справка MS... А ведь раньше она начиналась именно с этого. Впрочем, может это я туплю?

Добавлено через 4 минуты
О! Я так и думал, что сам туплю! Спасибо, invm.
Однако, там так и не описаны правила, по которым сервер ищет пропущенный в имени компонент.
У меня в мозг врезалось, что я видел такое описание во времена старых версий MSSQL серверов.
1
1 / 1 / 2
Регистрация: 17.03.2016
Сообщений: 234
28.10.2019, 14:49  [ТС]
отлично, спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2019, 14:49
Помогаю со студенческими работами здесь

Завис на простом запросе (поиск дубикатов)
Добрый день! Простой запрос привел в тупик. Поиск дубликатов. Имя базы "Table_Main", поле, где ищу дубликаты "" with...

Список значений в простом запросе на создание таблицы
Здравствуйте! Подскажите, пожалуйста, возможно ли и как в запросе с помощью SQL сделать следующее? Есть запрос на создание таблицы: ...

Ошибка в простом запросе с параметром типа Дата
Добрый день! Помогите преодолеть ошибку в простом запросе ДатаОст = Forms!! strSQl = "DELETE * FROM ОстаткиНаНачало WHERE...

Таймаут при простом запросе из ASP к SQL Server
работаю с ASP и БД на SQL Server через ADO. Иногда, по непонятным причинам (возможно, что в этот момент на сервере выполняются некоторые...

Таймаут при простом запросе из ASP к SQL Server
работаю с ASP и БД на SQL Server через ADO. Иногда, по непонятным причинам (возможно, что в этот момент на сервере выполняются некоторые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru