Submitted by st on
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;