Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer une autre colonne dépendante de la contrainte par défaut dans le serveur SQL

Vous voulez une colonne calculée. Par exemple :

CREATE TABLE tab1
(
 ID INT IDENTITY(1,1)
,[Type] VARCHAR(10)
,IsValued AS CASE [Type] WHEN 'S' THEN 1
                         WHEN 'R' THEN 0
             END
)

Vous pouvez ajouter à une table existante en utilisant la syntaxe suivante :

ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
                                                 WHEN 'R' THEN 0
                                     END

Vous pouvez rendre la colonne persistante en ajoutant le mot-clé PERSISTED après la création de la colonne. La persistance de la colonne signifie que le champ est stocké sur le disque. Lorsque vous insérez ou mettez à jour un enregistrement, le serveur SQL calcule la valeur à ce stade. Si vous ne le faites pas, SQL Server devra le résoudre chaque fois que vous accéderez à la ligne. Une bonne explication peut être trouvée sur SQL Server 2005 Computed La colonne est persistante

ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
                                                 WHEN 'R' THEN 0
                                     END PERSISTED