Что означают скобки в этом запросе SQL Server? [Дубликат]

Граница слов в большинстве диалектов регулярных выражений - это позиция между \w и \W (неглавным символом) или в начале или конце строки, если она начинается или заканчивается (соответственно) словом ([0-9A-Za-z_]).

Итак, в строке "-12" она будет соответствовать до 1 или после 2. Черточка не является символом слова.

127
задан antonjs 18 December 2012 в 17:41
поделиться

9 ответов

Скобки необходимы, если вы используете ключевые слова или специальные символы в именах столбцов или идентификаторах. Вы можете назвать столбец [First Name] (с пробелом), но тогда вам нужно будет использовать скобки каждый раз, когда вы ссылаетесь на этот столбец.

Новые инструменты добавляют их повсюду на всякий случай или для последовательность.

137
ответ дан Michael Haren 27 August 2018 в 13:39
поделиться

Независимо от следующего соглашения об именах, которое позволяет избежать использования зарезервированных слов, Microsoft добавляет новые зарезервированные слова. Использование скобок позволяет обновить ваш код до новой версии SQL Server, без необходимости вносить новые зарезервированные слова Microsoft из вашего клиентского кода. Это редактирование может быть серьезной проблемой. Это может привести к преждевременному выходу вашего проекта ....

Кронштейны также могут быть полезны, если вы хотите заменить все в сценарии. Если ваша партия содержит переменную с именем @String и столбец с именем [String], вы можете переименовать столбец в [NewString], не переименовывая @String в @NewString.

3
ответ дан Bill 27 August 2018 в 13:39
поделиться

Они удобны, если ваши столбцы имеют те же имена, что и ключевые слова SQL, или имеют пробелы в них.

Пример:

create table test ( id int, user varchar(20) )

О нет! Неправильный синтаксис рядом с ключевым словом «пользователь». Но это:

create table test ( id int, [user] varchar(20) )

Прекрасно работает.

46
ответ дан Blorgbeard 27 August 2018 в 13:39
поделиться

Они полезны, если вы (по какой-то причине) используете имена столбцов с определенными символами, например.

Select First Name From People

не будет работать, но квадратные скобки вокруг имени столбца будут работать

Select [First Name] From People

Короче говоря, это способ явно объявить имя объекта; столбец, таблица, база данных, пользователя или сервера.

11
ответ дан GateKiller 27 August 2018 в 13:39
поделиться

Кроме того, некоторые базы данных Sharepoint содержат дефисы в своих именах. Использование квадратных скобок в SQL-выражениях позволяет правильно обрабатывать имена.

4
ответ дан HSchlarb 27 August 2018 в 13:39
поделиться

Я считаю, что он добавляет их туда для согласованности ... они нужны только тогда, когда у вас есть пробел или специальный символ в имени столбца, но чище просто включать их все время, когда среда IDE генерирует SQL.

3
ответ дан Jeff Donnici 27 August 2018 в 13:39
поделиться

В темные времена SQL в 1990-х годах это была хорошая практика, поскольку разработчики SQL пытались добавить каждое слово в словаре как ключевое слово для бесконечной лавины новых функций, и они назвали его проектом SQL3.

Таким образом, он поддерживает совместимость.

И я обнаружил, что у него есть другой приятный побочный эффект, он очень помогает, когда вы используете grep в обзорах кода и рефакторинге.

2
ответ дан Lothar 27 August 2018 в 13:39
поделиться

Скобки могут использоваться, когда имена столбцов являются зарезервированными словами.

Если вы программно генерируете инструкцию SQL из коллекции имен столбцов, которую вы не контролируете, вы можете избежать проблем, всегда используя скобки.

5
ответ дан Torlack 27 August 2018 в 13:39
поделиться

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

6
ответ дан Will 27 August 2018 в 13:39
поделиться
Другие вопросы по тегам:

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