Почему среда SQL Server Management Studio создает код в квадратных скобках?

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

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

    ВЫБЕРИТЕ [NAME] ИЗ [TABLE]

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

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

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

3 ответов


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

ВЫБЕРИТЕ [NAME] ИЗ [TABLE]

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

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

CREATE TABLE [[test] (id INT)
CREATE TABLE ["test] (id INT)
DROP TABLE "[test"
DROP TABLE """test"

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


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

  • найти: [\[\]]
  • заменить на: "
  • Проверьте " Use: "и выберите"регулярные выражения"
  • Нажмите "Заменить Все"

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