Подтвердить что ты не робот

[] скобки в операторах sql

Что заключают скобки в инструкции sql?

Например, в инструкции:

insert into table1 ([columnname1], columnname2) values (val1, val2)

Кроме того, что он делает, если имя таблицы находится в скобках?

4b9b3361

Ответ 1

[] обозначает разграничение идентификатора, поэтому, если у вас есть столбец, имя которого содержит пробелы, такие как Order Qty, вам нужно заключить его с помощью [], например:

select [Order qty] from [Client sales]

Они также должны избегать зарезервированных ключевых слов, используемых в качестве идентификаторов

Ответ 2

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

  • зарезервированные слова SQL: "Заказ"
  • Слова, содержащие пробелы: "Order qty"
  • Слова, содержащие знаки препинания: "Заказ-кол-во"
  • Слова, содержащие международные символы
  • Имена столбцов, которые чувствительный к регистру: "Порядок" и "порядок"

Microsoft SQL Server использует квадратные скобки, но это не стандарт синтаксиса SQL, используемый для идентификаторов с разделителями. Обычно для разделителей следует использовать двойные кавычки.

В Microsoft SQL Server вы можете включить режим для использования стандартных двойных кавычек для разделителей следующим образом:

SET QUOTED_IDENTIFIER ON;

Ответ 3

Они предназначены для устранения зарезервированных ключевых слов или недопустимых идентификаторов столбцов.

CREATE TABLE test
(
  [select] varchar(15)
)

INSERT INTO test VALUES('abc')

SELECT [select] FROM test

Ответ 4

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

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

Ответ 5

Все, что находится внутри скобок, считается единственным идентификатором (например, [test machine]). Это можно использовать для того, чтобы заключать имена с пробелами или избегать резервных слов (например, [порядок], [выбрать], [группу]).

Ответ 6

Это просто разделители, которые позволяют помещать специальные символы (например, пробелы) в имя столбца или таблицы например

insert into [Table One] ([Column Name 1], columnname2) values (val1, val2)

Ответ 7

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

Ответ 8

При наличии имен таблиц или имен файлов с пробелами или тире (-) и т.д. вы можете получить "Systax error в предложении FROM". Используйте [] скобки, чтобы решить эту проблему.

Смотрите: https://msdn.microsoft.com/en-us/library/ms175874.aspx