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

StackOverflow https://stackoverflow.com/questions/52898

Вопрос

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

Пример:Visual Studio (Визуальная студия):ВЫБЕРИТЕ [столбец 1], [столбец 2] и т.д...

По - своему:ВЫБЕРИТЕ столбец 1, столбец 2 и т.д...

Это было полезно?

Решение

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

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

Другие советы

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

Пример:

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

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

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

Работает нормально.

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

Select First Name From People

это не сработало бы, но заключение квадратных скобок вокруг имени столбца сработало бы

Select [First Name] From People

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

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

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top