Ответ 1
Чтобы ответить на вопрос "есть ли какие-либо предпочтения/различия":
Да, есть так много предпочтений, как есть мнения, но будьте осторожны, чьи предпочтения вы принимаете.
В качестве наилучшей практики рекомендуется писать переносимый SQL, если он не требует дополнительных усилий.
Для вашего конкретного примера так же легко написать переносимый запрос:
select OrderId as "Order Id" from Orders
Чем писать непереносимый:
select OrderId as [Order Id] from Orders
Невозможно написать нестандартный SQL, если имеется эквивалентная переносная форма того же числа нажатий клавиш.
Распространение [] для экранирования связано с такими инструментами, как SQL Server Management Studio и сборщиками запросов MS Access, которые лениво избегают всего. Это может никогда не произойти с разработчиком, который проводит свою карьеру в SQL Server, но скобки привели к большим расходам на протяжении многих лет, перенося приложения Access и SQL Server на другие платформы баз данных. То же самое касается инструментов Oracle, которые цитируют все. Необученные разработчики видят DDL в качестве примеров, а затем приступают к использованию того же стиля при написании вручную. Это трудный цикл, который нужно преодолеть, пока инструменты не улучшатся, и мы требуем лучшего. В Oracle цитирование в сочетании со смешанным корпусом приводит к базе данных, чувствительным к регистру. Я видел проекты, в которых люди цитировали каждый идентификатор в базе данных, и у меня было ощущение, что я был в The Land of the Lost, где разработчики эволюционировали на острове без документации или статей лучшей практики.
Если вы пишете свой DDL, с самого начала, с нормализованными юридическими идентификаторами (используйте OrderId или order_Id вместо [Идентификатор заказа], вы не беспокоитесь о мифическом ключевом слове, которому могут понадобиться escape-символы, база данных будет информировать вы, когда используете зарезервированное слово. Я могу рассчитывать на один палец, когда мы когда-либо обновляли приложение с одной версии SQL Server до другого, и имели любые поломки из-за новых зарезервированных слов.
Это часто является предметом жарких споров, поэтому, если вы думаете об этом по-другому:
Программисты С# не избегают всех своих переменных с @, даже если это законно. Это будет считаться странной практикой и будет предметом насмешек над StackOverflow. Экранирование должно быть для краевых случаев. Но те же разработчики, которые пишут соответствующие идентификаторы С#, не прочь избежать каждого отдельного идентификатора в своем SQL, написав ужасно уродливый, не переносимый SQL-код. В качестве консультанта я встретил более одного программиста SQL Server, который, честно говоря, считал, что требуется синтаксис []. Я не виню разработчиков, я виню инструменты.