Почему SQL Server Management Studio генерирует код, используя квадратные скобки? - PullRequest
6 голосов
/ 09 октября 2009

При генерации кода / скриптов,

  1. почему SQL Server Management Studio генерирует код, используя квадратные скобки, а не двойные кавычки?

    ВЫБРАТЬ [ИМЯ] ИЗ [ТАБЛИЦЫ]

  2. и есть ли способ (настройка / запись в реестре) настроить его на использование двойных кавычек (стандарта) вместо этого?

    ВЫБЕРИТЕ "ИМЯ" ИЗ "ТАБЛИЦЫ"

Это очень MSFT-функция, учитывая, что вся их документация теперь указывает двойные кавычки (см. this )

Ответы [ 3 ]

4 голосов
/ 09 октября 2009

почему sql-сервер (студия управления) генерирует код, используя квадратные скобки?

ВЫБРАТЬ [ИМЯ] ИЗ [ТАБЛИЦЫ]

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

Квадратные скобки являются родным способом переноса идентификаторов. Они асимметричны и не могут быть сопоставлены, в то время как кавычки симметричны и должны быть сопоставлены (или удвоены, чтобы включить их в имя):

CREATE TABLE [[test] (id INT)
CREATE TABLE ["test] (id INT)
DROP TABLE "[test"
DROP TABLE """test"
2 голосов
/ 09 октября 2009

Ваша ссылка объясняет почему, по крайней мере, мне. Квадратные скобки не зависят от настройки, но действительность "зависит от настройки QUOTED_IDENTIFIER.

1 голос
/ 02 декабря 2016

Чтобы ответить на другую половину вашего вопроса, в SQL Server Management Studio есть обходной путь с командой Заменить все ( Ctrl + H ):

  • Найти что: [\[\]]
  • Заменить на: "
  • Отметьте «Использовать:» и выберите «Регулярные выражения»
  • Нажмите «Заменить все»

Имейте в виду, что это также заменит скобки в вашем комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...