В чем разница в [] и () в SQL? - PullRequest
0 голосов
/ 23 марта 2012

Я видел оба использованных, но я не могу понять, когда использовать каждый?

Мне кажется, что вы вводите имя таблицы, из которой вы ссылаетесь, в () и имя поля в []?

Может кто-нибудь объяснить?

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Квадратные скобки используются в продуктах Microsoft для указания того, что внутри них находится идентификатор (стандартные идентификаторы в кавычках - это двойные кавычки " ", которые также поддерживает Microsoft SQL Sever).Это используется, когда у вас есть имя базы данных, имя пользователя, имя таблицы, имя поля, имя представления, имя процедуры (и т. Д.), Которое совпадает с ключевым словом или содержит символы, которые нарушают синтаксис.Это часто используется в сгенерированном коде для защиты от идентификаторов, которые иначе не могут быть использованы в коде.Сгенерированный запрос может выглядеть следующим образом:

select [Id], [Name], [Password hint]
from [dbo].[MyDataBase].[User]

Здесь имя поля Password hint нарушит синтаксис, если используется без скобок, а имя таблицы User может конфликтовать с ключевым словом User.

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

insert into someTable (field1, field2) values ('value1', 'value2')

Они также могут использоваться в выражениях:

select Price * (Quantity + FreeItems) from Articles

Их также можно использовать вокруг запросов для создания подзапросов:

select o.Name
from (select Name, Age from Persons where City = 'Oslo') as o
where o.Age > 18
0 голосов
/ 23 марта 2012

() используются для передачи параметров в функции и хранимые процедуры и т. Д. [] Используется для инкапсуляции имени поля (и т. Д.), Которое включает знаки препинания (пробелы и специальные символы в соответствии с комментарием выше).[] иногда полезно называть поля для отображения

SELECT FFgg AS [Some field discription] FROM table1;

Надеюсь, это поможет.

...