Использование точки в имени объекта - плохая практика.
Не используйте символ точки в идентификаторе. Да, это можно сделать, но недостатки перевешивают любые преимущества.
Т.Л., др
Специальные символы, такие как точка, не допускаются в обычных идентификаторах. Если идентификатор не соответствует правилам для обычного идентификатора, то ссылки на идентификатор должны быть заключены в квадратные скобки (или двойные кавычки ANSI).
https://docs.microsoft.com/en-us/sql/relational-databases/databases/database-identifiers?view=sql-server-2017
В терминах точки (символ точки) использование этого в идентификаторе не допускается в обычном идентификаторе; но его можно использовать в квадратных скобках.
Символ точки является еще более специальным символом в SQL; используется для отделения идентификатора от предшествующего квалификатора.
SELECT mytable.mycolumn FROM mytable
Мы могли бы также написать это как
SELECT [mytable].[mycolumn] FROM mytable
Мы могли бы также написать
SELECT [mytable.mycolumn] FROM mytable
но это означает что-то совсем другое. При этом мы не ссылаемся на столбец с именем mycolumn
, теперь мы ссылаемся на идентификатор, содержащий символ точки.
SQL Server отлично с этим справится.
Но если мы сделаем это и начнем использовать символ точки в наших идентификаторах, мы вызовем замешательство и разочарование у будущих читателей. Любая выгода, которую мы получили бы, используя точечные символы в идентификаторах, будет значительно перевешена недостатком для других.
Аналогично, почему мы не создаем таблицы с именем WHERE (1=1) OR
или не создаем столбцы с именем SUBSTR(foo.bar,1,10)
, чтобы избежать таких чудовищ, как
SELECT [SUBSTR(foo.bar,1,10)] FROM [WHERE (1=1)] OR]
Это может быть действительный SQL, но это заставит будущих читателей очень расстроиться и заставить их проклинать нас, наших потомков и близких. Не заставляй их делать это. Ради любви ко всему хорошему и прекрасному в этом мире, не используйте точечные символы в идентификаторах.