Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
Спор не о чем.

Мне на порядок нагляднее правильная конструкция:

insert into dbo.table3
(
id
,column1
,column2
)
select
t1.id
,t1.column1
,t2.column2
from dbo.table1 t1
inner join dbo.table2 t2 on t1.id = t2.id
24 окт 17, 14:51    [20895779]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
iap
TaPaK
пропущено...

так вот, стандарт описывает поддержку 2х вариантов идентификаторов и чем обознченный идентификатор будет разделятся указывает на "" или [], а желание убрать это граничит с идиотизмом
Ссылку на стандарт можно посмотреть?

Можно
24 окт 17, 14:54    [20895790]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
T,

автор
Мне на порядок нагляднее правильная конструкция:

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

и в тему стандартов, sql анонсировала уже ввод обязательного разделителя ; в стейтментах, вопрос когда :)
24 окт 17, 14:57    [20895799]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
T
Спор не о чем.

Мне на порядок нагляднее правильная конструкция:

insert into dbo.table3
(
id
,column1
,column2
)
select
t1.id
,t1.column1
,t2.column2
from dbo.table1 t1
inner join dbo.table2 t2 on t1.id = t2.id

А потом искать в тексте процедур условие where [column1] = N'column1' обретает смысл - что внутри квадратных скобок, что без них.
24 окт 17, 14:57    [20895800]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
T
Мне на порядок нагляднее

Вы один в команде? Если Вы пускаете в свой код другого разработчика, а он задает вопрос "ну и как я это буду переделывать?" - это уже достойная причина не думать, как Вам нагляднее, а думать, как всем привычнее.
24 окт 17, 14:59    [20895806]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
Очень смешные содержательные ответы.

Нашей "команде" во вселенском масштабе с понями, у которых в крови отсутствие пробелов в идентификаторах, что в коде, что на файловом уровне гораздо удобнее без [].

Я прекрасно понимаю майкрософт, он стремится упростить синтаксический анализатор, но людей с пеной у рта доказывающих, что необязательные символы улучшают читабельность не понимаю.
24 окт 17, 15:14    [20895852]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Что вы мне ссылки на двойные кавычки в стандарте даёте?!
Дайте упоминание в стандорте ANSI про квадратные скобки!
А так и я умею. Держите: https://ronsavage.github.io/SQL/sql-2003-2.bnf.html#delimited identifier

Мой интерес порождён вот этим утверждением:
TaPaK
так вот, стандарт описывает поддержку 2х вариантов идентификаторов и чем обознченный идентификатор будет разделятся указывает на "" или [], а желание убрать это граничит с идиотизмом
24 окт 17, 15:14    [20895856]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
T
Очень смешные содержательные ответы.

Нашей "команде" во вселенском масштабе с понями, у которых в крови отсутствие пробелов в идентификаторах, что в коде, что на файловом уровне гораздо удобнее без [].

Я прекрасно понимаю майкрософт, он стремится упростить синтаксический анализатор, но людей с пеной у рта доказывающих, что необязательные символы улучшают читабельность не понимаю.
Некоторые вообще любят давать имена с ключевыми словами. Им тоже квадратные скобки понадобятся.
24 окт 17, 15:16    [20895864]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
iap, успокойтесь, имхо они даже не знают, что идентификатор может быть без разделителя
24 окт 17, 15:17    [20895870]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
у них свой стандарт 2 типа: " или []
24 окт 17, 15:22    [20895882]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
вообще строгие ребята, простите. Пробел конечно в данном случае разделитель.
24 окт 17, 15:24    [20895888]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
iap,

автор
Мой интерес порождён вот этим утверждением:
там естественно к стандарту относится первая половина, про ordinary identifier и delimited identifier в стандарте только "". Кстати видел больште enterprise решения с форматами "name<delimeter>type"
24 окт 17, 15:33    [20895909]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
TaPaK, не отмазывайтесь.

Вы стандарт к первому посту с [] приплели.
24 окт 17, 15:38    [20895936]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
T
TaPaK, не отмазывайтесь.

Вы стандарт к первому посту с [] приплели.

где в моём сообщении про []?
24 окт 17, 15:39    [20895939]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
TaPaK,
Ваш самый превый ответ на мой первый вопрос про [] отсылает только к стандарту, подумайте немножко.
24 окт 17, 15:44    [20895953]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
хорошо я согласен
Member

Откуда:
Сообщений: 384
Напиши простую программу (хоть на бейские, на чём угодно), которая будет форматировать блок текста в буфере обмена.
Жмёшь Ctrl+C - копируешь блок
Жмёшь комбинацию, какую придумаешь, либо значок в трее (как сделаешь) - блок в буфере форматируется
Жмёшь Ctrl+V - вставляешь блок в том виде, в каком захотелось. Не забудь предусмотреть словарь зарезервированных слов, которые нельзя изымать из квадратных скобок.

Именно так поступают программисты в таких ситуациях.
24 окт 17, 15:51    [20895979]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
T
TaPaK,
Ваш самый превый ответ на мой первый вопрос про [] отсылает только к стандарту, подумайте немножко.

для очень тупых: стандарт и ms sql dbms поддерживают два типа, и если убрать разделитель, то это влечёт потенциальную ошибку при генерации скриптов, доходчиво?
24 окт 17, 15:52    [20895991]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
TaPaK,
для безумно тупых, которые могут безусловный генератор написать с обязательным [], сообщу, что Программисты написали бы правильный и заключили в [] только то, что нужно (пробелы, зарезервированные слова), а не генерили бы с "потенциальными ошибками". Понятнее???

хорошо я согласен,
мне (моей команде ;-) словарь не нужен, просто удаляю []. "Потенциальных ошибок" не возникает.
24 окт 17, 16:00    [20896031]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
T
TaPaK,
для безумно тупых, которые могут безусловный генератор написать с обязательным [], сообщу, что Программисты написали бы правильный и заключили в [] только то, что нужно (пробелы, зарезервированные слова), а не генерили бы с "потенциальными ошибками". Понятнее???

хорошо я согласен,
мне (моей команде ;-) словарь не нужен, просто удаляю []. "Потенциальных ошибок" не возникает.

да вы можете хоть на голове стоять, но кроме словаря пробелов/точек есть ещё несколько ограничений для одинарного идентификатора которые допустимы для раздельного.
24 окт 17, 16:05    [20896054]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
T
Очень согласен, тоже крайне раздражает частокол скобок.

ИМХО из старены глубокой идет более наглядный стиль программирования: CustomerOrders вместо [Customer Orders].
+1
Увы, теперь это изменить нельзя.
Интересно, что в опциях есть возможность не использовать имена схемы, что точно недопустимо и точно приводит к проблемам, а вот не генерировать [] нельзя, хотя достаточно использовать удобные общепринятые правила именования, не создавая таблиц вида
create table [drop table] ([varchar(max)] varchar(max))

Владислав Колосов
Меня, например, парит, что в С надо завершать строки точкой с запятой. Так сотни тысяч программистов это делают и все у них в порядке.
Не передёргивайте, это не одно и то же. Можно на вопрос "база упала почему бакапа нет" ответить "а вот в С надо завершать строки точкой с запятой".

В С не надо писать идентификаторы в кавычках, квадратных скобках и т.д. Ни в каком языке не надо, не приходило это никому в голову. Почему, интересно?

А по простой причине, потому что SQL был сделан для конечных пользователей, и им удобно делать поля типа "баланс на второй квартал (в рублях)"
Но когда SQL вырос до языка для программистов, этот атавизм нужно было убрать, ещё лет 30 назад..
24 окт 17, 16:06    [20896055]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
TaPaK
кроме словаря пробелов/точек есть ещё несколько ограничений для одинарного идентификатора которые допустимы для раздельного.
Да, есть, во всех языках есть, именно для того, что было не нужно (и нельзя) обрамлять идентификаторы как строковые литералы.
Ну неужели это удобно, я не пойму, почему неудобство отстаивают как передовое достижение???
Я представляю код на С или Java c идентификаторами в "" или []. Нет, лучше не представлять, а то приснится ещё такой код.
24 окт 17, 16:10    [20896076]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
alexeyvg
TaPaK
кроме словаря пробелов/точек есть ещё несколько ограничений для одинарного идентификатора которые допустимы для раздельного.
Да, есть, во всех языках есть, именно для того, что было не нужно (и нельзя) обрамлять идентификаторы как строковые литералы.
Ну неужели это удобно, я не пойму, почему неудобство отстаивают как передовое достижение???
Я представляю код на С или Java c идентификаторами в "" или []. Нет, лучше не представлять, а то приснится ещё такой код.
И, кстати, ограничения вполне "естественные". Пробел заменяется подчёркиванием, с тем же смыслом "разделения слов", а знаки препинания, переводы строки и т.д. программист использовать в здравом уме не будет, так же как начинать идентификатор с цифры.
24 окт 17, 16:15    [20896092]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
автор
Ну неужели это удобно, я не пойму, почему неудобство отстаивают как передовое достижение???
я не говорю что это удобно/не добно, я говорю что это by design :)
и поторюсь, что видел абсолютно разные подходы к названию особенно объектов(а ещё более жутких процедур) включающих макимум возможного с абсолютно неестесвенными симолами внутри, но принятыми внутри компании стандартом именования и сообщая что им и их команде это удобно :)
24 окт 17, 16:16    [20896096]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
T
Guest
Да кто-нибудь, скажет этому TaPaKу, что генератор раньше заключал в [] только то, что НЕОБХОДИМО, что выбивается из правил именования идетификаторов.

И языки другие привели в пример, посему мне [] и режет глаз, что не только T-SQL юзаю. Бестолку.
24 окт 17, 16:27    [20896134]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать квадратные скобки в генерируемом SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31331
TaPaK
я не говорю что это удобно/не добно, я говорю что это by design :)
По моему, вы пишите как раз про удобство написания в кавычках.

Речь же о принятых в команде соглашениях о написании кода, речь же не о том, что бы удалить навсегда способность генерить текст с идентификаторами в кавычках или скобках. Если в системе идентификаторы нормальные, то да, удобно/правильно генерить скрипты без кавычек.

Т.е. человек спросил: нет ли возможности делать правильные скрипты, например, галочкой в SSMS.

Я вот ответил: нет, сделано криво by design.

Что то я не видел подобных ответов, вижу обсуждение в стиле "чувак ты не оценил ламер я так с детства идентификаторы пишу потому что это круто!" :-)
24 окт 17, 17:54    [20896461]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить