Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como criar outra coluna dependente de restrição padrão no servidor sql


Você quer uma coluna computada. Por exemplo:
CREATE TABLE tab1
(
 ID INT IDENTITY(1,1)
,[Type] VARCHAR(10)
,IsValued AS CASE [Type] WHEN 'S' THEN 1
                         WHEN 'R' THEN 0
             END
)

Você pode adicionar a uma tabela existente usando a seguinte sintaxe:
ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
                                                 WHEN 'R' THEN 0
                                     END

Você pode tornar a coluna persistente adicionando a palavra-chave PERSISTED após a criação da coluna. Persistindo a coluna significa que o campo está armazenado em disco. Quando você insere ou atualiza um registro, o SQL Server calcula o valor nesse ponto. Caso contrário, o SQL Server terá que resolver isso toda vez que você acessar a linha. Uma boa explicação pode ser encontrada em SQL Server 2005 Computed A coluna é persistente
ALTER TABLE dbo.tab1 ADD IsValued AS CASE [Type] WHEN 'S' THEN 1
                                                 WHEN 'R' THEN 0
                                     END PERSISTED