Лучший шаблон для констант в SQL?

Я видел несколько шаблонов, используемых для «преодоления» отсутствия констант в SQL Server, но ни один из них, по-видимому, не удовлетворял ни проблемам производительности, ни читаемости / удобства обслуживания.

В приведенном ниже примере, предполагая, что у нас есть интегральная классификация «статус» в нашей таблице, варианты, как представляется:

Просто жестко закодировать его и, возможно, просто «прокомментировать» статус

-- StatusId 87 = Loaded
SELECT ... FROM [Table] WHERE StatusId = 87;
Использование таблицы поиска для состояний, а затем присоединение к этой таблице, чтобыWHERE пункт ссылается на понятное имя.

подзапрос:

SELECT ... 
FROM [Table] 
WHERE 
  StatusId = (SELECT StatusId FROM TableStatus WHERE StatusName = 'Loaded');

или присоединился

SELECT ... 
FROM [Table] t INNER JOIN TableStatus ts On t.StatusId = ts.StatusId 
WHERE ts.StatusName = 'Loaded';
Связка скалярных UDF, которые возвращают константы, а именно

CREATE Function LoadedStatus()
RETURNS INT
AS
 BEGIN
  RETURN 87
 END;

а потом

SELECT ... FROM [Table] WHERE StatusId = LoadedStatus();

(IMO это вызывает много загрязнения в базе данных - это может быть хорошо в оболочке пакета Oracle)

И аналогичные шаблоны с табличными функциями, содержащими константы со значениями в виде строк или столбцов, которыеCROSS APPLIED вернуться к[Table]

Как другие пользователи SO решили эту общую проблему?

редактировать : Щедрость - есть ли у кого лучший метод для поддержания $ (переменных) в сценариях DBProj DDL / Schema согласно ответу и комментарию Remus?

Ответы на вопрос(4)

Ваш ответ на вопрос