Check constraint con CASE

17/10/2006 - 03:33 por Gregorio López | Informe spam
Hola a todos. Estoy tratando de crear una restricción CHECK, la cual depende
de una cierta condición que obliga a usar la instrucción CASE, del tipo
siguiente:

alter table Partes add constraint
CK_PartesFactorConversion check (case when ([Medida1] = [Medida2])
then [FactorConversion] = 1
else [FactorConversion] >= 1
end)

Pero en la línea usando el then marca un error de sintaxis
Incorrect syntax near '='

¿Será que la validación no es posible de esta manera y debe hacerse en un
trigger?.

Saludos y gracias anticipadas.
 

Leer las respuestas

#1 Miguel Egea
17/10/2006 - 09:46 | Informe spam
No, es por como lo has escrito, te paso un ejemplo para la tabla
person.contact de adventureworks. El ejemplo es bastante estúpido, pero creo
que la sintaxis la verás clara.

alter table person.contact add check ( Title like case when
firstname='Margaret' and ContactID=7

then 'Ms.' else '%' end )



Saludos

Miguel Egea

"Gregorio López" wrote in message
news:%
Hola a todos. Estoy tratando de crear una restricción CHECK, la cual
depende de una cierta condición que obliga a usar la instrucción CASE, del
tipo siguiente:

alter table Partes add constraint
CK_PartesFactorConversion check (case when ([Medida1] = [Medida2])
then [FactorConversion] = 1
else [FactorConversion] >= 1
end)

Pero en la línea usando el then marca un error de sintaxis
Incorrect syntax near '='

¿Será que la validación no es posible de esta manera y debe hacerse en un
trigger?.

Saludos y gracias anticipadas.

Preguntas similares