В чем заключаются квадратные скобки [] в операторах sql?

Я заметил, что Visual Studio 2008 помещает квадратные скобки вокруг имен столбцов в sql. Есть ли в скобках преимущество? Когда я передаю код T-SQL, я никогда не беспокоился о них.

Пример:

Visual Studio:

SELECT [column1], [column2] etc...

Мой собственный путь:

SELECT column1, column2 etc...

Ответ 1

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

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

Ответ 2

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

Пример:

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

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

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

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

Ответ 3

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

Select First Name From People

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

Select [First Name] From People

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

Ответ 4

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

Ответ 5

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

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Таким образом, он сохраняет совместимость.

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