У меня иногда возникали проблемы с именами хранимых процедур для полей, таблиц, представлений.
Пример:
SELECT from, to, rate FROM Table1
Проблема в том, что из является зарезервированным словом в SQL-92.
Вы можете поместить имя поля в двойные кавычки, чтобы это исправить, но что, если некоторые другие инструменты БД захотят прочитать вашу базу данных?
Это ваша база данных, и это ваша вина, если другие приложения имеют проблемы с вашей БД.
Есть много других зарезервированных слов (~ 300), и мы должны избегать их всех.
Если вы измените СУБД с производителя A на B, ваше приложение может не работать, потому что некоторые имена полей теперь являются зарезервированными словами.
Поле с именем PERCENT может работать для Oracle db, но на MS SQL Server оно должно рассматриваться как зарезервированное слово.
У меня есть инструмент для проверки дизайна моей базы данных по этим зарезервированным словам; ты тоже?
Вот мои правила
- не использовать имена длиннее 32 символов (некоторые СУБД не могут обрабатывать более длинные имена)
- используйте только a-z, A-Z, 0-9 и подчеркивание (: -;, / &! =? + - не допускаются)
- не начинайте имя с цифры
- избегайте этих зарезервированных слов