Искате изчислена колона. Например:
CREATE TABLE tab1
(
ID INT IDENTITY(1,1)
,[Type] VARCHAR(10)
,IsValued AS CASE [Type] WHEN 'S' THEN 1
WHEN 'R' THEN 0
END
)
Можете да добавите към съществуваща таблица, като използвате следния синтаксис:
ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
WHEN 'R' THEN 0
END
Можете да направите колоната постоянна, като добавите ключовата дума PERSISTED
след създаването на колоната. Запазването на колоната означава, че полето се съхранява на диск. Когато вмъкнете или актуализирате запис, SQL сървърът ще изчисли стойността в този момент. Ако не го направите, SQL Server ще трябва да го обработва всеки път, когато имате достъп до реда. Добро обяснение може да се намери на SQL Server 2005 Computed Колоната се запазва
ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
WHEN 'R' THEN 0
END PERSISTED