Cambiar el valor de un campo dependiendo de el valor de otro campo en la misma tabla.

14/02/2008 - 21:56 por jmauriciopb | Informe spam
Hola.
Tengo la siguiente tabla
OPC
iOPCId int
cDescripcion varchar (300)
cEstado char (1)
iActivo Int

Necesito hacer:
1- que el campo cEstado solo me acepte estos valores I, P,T, S, A
2.-que el campo iActivo tenga el valor 1 si OPC.cEstado = I ó
OPC.cEstado = P de lo contrario tenga 0 este cambio debe ser
automatico

Tengo Sql Server 2000

Gracias.
Mauricio Pulla.
Cuenca-Ecuador.

Preguntas similare

Leer las respuestas

#1 Maxi Accotto
15/02/2008 - 02:39 | Informe spam
Holam, revisa Case en tus libros online, como tambien Update, intenta
sacarlo, muestranos hasta donde has llegado y si no te sale con ese codigo
te ayudamos


Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

escribió en el mensaje de
noticias:
Hola.
Tengo la siguiente tabla
OPC
iOPCId int
cDescripcion varchar (300)
cEstado char (1)
iActivo Int

Necesito hacer:
1- que el campo cEstado solo me acepte estos valores I, P,T, S, A
2.-que el campo iActivo tenga el valor 1 si OPC.cEstado = I ó
OPC.cEstado = P de lo contrario tenga 0 este cambio debe ser
automatico

Tengo Sql Server 2000

Gracias.
Mauricio Pulla.
Cuenca-Ecuador.
Respuesta Responder a este mensaje
#2 Leonardo Azpurua
15/02/2008 - 11:04 | Informe spam
escribió en el mensaje
news:
Hola.
Tengo la siguiente tabla
OPC
iOPCId int
cDescripcion varchar (300)
cEstado char (1)
iActivo Int

Necesito hacer:
1- que el campo cEstado solo me acepte estos valores I, P,T, S, A
2.-que el campo iActivo tenga el valor 1 si OPC.cEstado = I ó
OPC.cEstado = P de lo contrario tenga 0 este cambio debe ser
automatico



Hola.

Para la validacion del estado basta con crear una regla y asociarla a la
columna:

create rule checkEstado As @e IN ('I', 'P', 'T', 'S', 'A')
sp_bindrule checkEstado, 'tuTabla.cEstado

Para que el campo iActivo dependa de OPC, puedes definirlo como una columna
calculada, escribiendo esta expresión en su propiedad Formula:

(case when (([OPC] = 'P' or [OPC] = 'I')) then 1 else 0 end)

Salud!
Respuesta Responder a este mensaje
#3 Carlos M. Calvelo
15/02/2008 - 11:23 | Informe spam
Hola Leonardo,

On 15 feb, 11:04, "Leonardo Azpurua" <l e o n a r d o [arroba] m v p s
[punto] o r g> wrote:

Para la validacion del estado basta con crear una regla y asociarla a la
columna:

create rule checkEstado As @e IN ('I', 'P', 'T', 'S', 'A')
sp_bindrule checkEstado, 'tuTabla.cEstado

Para que el campo iActivo dependa de OPC, puedes definirlo como una columna
calculada, escribiendo esta expresión en su propiedad Formula:

(case when (([OPC] = 'P' or [OPC] = 'I')) then 1 else 0 end)





Estaba yo a punto de unirme al consejo de Maxi solo para
añadir que mirara el CHECK() y que no hacía falta guardar
el valor de iActivo pero ya veo que se lo has deletreado tu.

Solo añadir que para la restricción de la columna cEstado
sería mas sencillo utilizar CHECK() en vez de create rule y
sp_bindrule.

Saludos,
Carlos
Respuesta Responder a este mensaje
#4 jmauriciopb
15/02/2008 - 14:04 | Informe spam
Gracias a todos...

Maxi y Carlos, realmente no tenia ide a de como implementarlo, conosco
muy poco de Sql Server.

No pretendo que hagan mi trabajo, si no aprender de ustedes

Saludos.
Mauricio Pulla.
Cuenca-Ecuador
Respuesta Responder a este mensaje
#5 Carlos M. Calvelo
15/02/2008 - 15:05 | Informe spam
On 15 feb, 14:04, wrote:
Gracias a todos...

Maxi y Carlos, realmente no tenia ide a de como implementarlo, conosco
muy poco de Sql Server.

No pretendo que hagan mi trabajo, si no aprender de ustedes




No pasa nada Mauricio. Mis disculpas por hacerte sentir así.
Espero que con lo que puso Leonardo sea suficiente. Si no
es así, pregunta y estaré encantado de ayudarte.

Saludos,
Carlos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida