Valeurs constantes en SQL

Il est possible définir les valeurs constants en Transact SQL à l’aide des vues.

CREATE VIEW dbo.Constant (pi, e, phi)
AS SELECT 3.141592653, 2.718281828, 1.618033988

Les fonctions scalaires sont pratiques aussi.

CREATE FUNCTION Constants.e() RETURNS float
AS BEGIN
   RETURN 2.718281828;
END

A quoi servent ces constants sauf les cas « normales » qui sont assez rares en SQL ?

Imaginez que vous faites le mapping entre vos objets et la base de données relationnel. Il est très probable que vous avez aussi les énumérations. Dans ce cas la vue ou l’ensemble de fonctions seront le résultat du mapping qui vous permet d’utiliser les énumérations dans le code SQL.
Par exemple

namespace DocFlow.Document
{
    public enum Status
    {
        Created = 0,
        Validated = 1,
        Closed = 2
    }
}

CREATE VIEW DocFlow.Document_Status
  (Created, Validated, Closed)
AS
  SELECT 0, 1, 2;

CREATE VIEW DocFlow.Document_StatusList
AS
  SELECT 0 AS Value, 'Created' AS Name
  UNION ALL
  SELECT 1 AS Value, 'Validated' AS Name
  UNION ALL
  SELECT 2 AS Value, 'Closed' AS Name;