Du vill ha en beräknad kolumn. Till exempel:
CREATE TABLE tab1
(
ID INT IDENTITY(1,1)
,[Type] VARCHAR(10)
,IsValued AS CASE [Type] WHEN 'S' THEN 1
WHEN 'R' THEN 0
END
)
Du kan lägga till i en befintlig tabell med följande syntax:
ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
WHEN 'R' THEN 0
END
Du kan göra kolumnen bestående genom att lägga till nyckelordet PERSISTED
efter att kolumnen skapats. Om kolumnen kvarstår betyder det att fältet lagras på disken. När du infogar eller uppdaterar en post kommer SQL-servern att räkna ut värdet vid den tidpunkten. Om du inte gör det måste SQL Server lösa det varje gång du kommer åt raden. En bra förklaring finns på SQL Server 2005 Computed Kolumn kvarstår
ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
WHEN 'R' THEN 0
END PERSISTED