Работа со служебными словами в именах таблиц SQL Server

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы присвоить таблицам имена, соответствующие зарезервированным ключевым словам в MS SQL Server, окружите эти слова двойными кавычками или квадратными скобками, например:

SQL
Скопировать код
CREATE TABLE "Table" (
    "Column" INT
);

или

SQL
Скопировать код
CREATE TABLE [Table] (
    [Column] INT
);

Использование скобок или кавычек будет восприниматься сервером как идентификаторы, а не как зарезервированные слова.

Кинга Идем в IT: пошаговый план для смены профессии

Стратегии противодействия конфликтам

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

  • Избегайте использования зарезервированных слов: Перед назначением имени таблице ознакомьтесь со списками зарезервированных ключевых слов.
  • Придавайте имена, соответствующие контексту: Называйте таблицы так, чтобы их имена отражали их содержание, например EmployeeData или ProductDetails.
  • Добавляйте префиксы или суффиксы: Добавление префиксов (например, tblTable) или суффиксов (TableTbl) позволит отличить имена, заданные пользователем, от зарезервированных и предотвратить путаницу в SQL Server.

Определение зарезервированных ключевых слов

Перед тем как рискнуть, необходимо узнать своего противника:

  • Используйте SQL Server Management Studio (SSMS): оно подсвечивает зарезервированные ключевые слова розовым цветом, предупреждая о возможных конфликтах.
  • Обращайтесь к официальной документации для получения актуального списка ключевых слов, учитывая, что с выпуском каждой новой версии SQL Server этот список может расширяться.

Использование зарезервированных слов в запросах

Если вы используете зарезервированные имена в ваших запросах, не забудьте о правилах экранирования:

SQL
Скопировать код
SELECT * FROM [User]; 
--💡 Не забудьте окружать имена скобками!

Если вы пропустите этот шаг, SQL Server сгенерирует ошибку, так как не сможет корректно обработать запрос.

Визуализация

Представьте зарезервированные ключевые слова как VIP-сектор: [SELECT, INSERT, TABLE, USER], на которые без специального разрешения "сесть" нельзя. С использованием наших методов вы сможете безопасно занять "резерв":

SQL
Скопировать код
CREATE TABLE "[TABLE]" (id INT);

Таким образом, место занято: [SELECT, INSERT, 🙋‍♂️"TABLE", USER].

Почему использование зарезервированных слов может вызвать проблемы

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

Лучшие практики именования таблиц

При проектировании баз данных следуйте следующим правилам:

  • Согласованность: Единообразие в именовании упрощает чтение и поддержку базы данных.
  • Планирование на будущее: Избегайте использования слов, которые сегодня ещё не зарезервированы, но могут стать таковыми в будущих версиях.
  • Учёт переносимости: Если предусматривается миграция на другие SQL-системы, отказ от использования зарезервированных слов облегчит процесс.

За пределами словарного запаса: Альтернативы зарезервированным названиям

Не допускайте предупреждений от SSMS, замените названия на подходящие альтернативы:

  • Вместо 'User' используйте UserList.
  • 'Order' замените на OrderDetails.
  • А если вам нравится 'Role', замените его на RoleClass.

Такие альтернативы предотвращают конфликты и добавляют креативности в дизайн ваших схем.

Полезные материалы

  1. Зарезервированные ключевые слова (Transact-SQL) – SQL Server | Microsoft Learn — последний актуальный список зарезервированных ключевых слов в SQL Server.
  2. SET QUOTED_IDENTIFIER (Transact-SQL) – SQL Server | Microsoft Learn — информация об использовании ограниченных идентификаторов в SQL Server.
  3. Как мне игнорировать амперсанды в скрипте SQL, запущенном из SQL Plus? – Stack Overflow — подробное объяснение работы с зарезервированными словами в SQL.
  4. Руководство стиля SQL от Simon Holywell — советы по избежанию использования зарезервированных слов.