Programación en castellano
Inicio > Foros > Bases de datos y SQL > Crear una columna rellenándola
-Foros de debate

Bases de datos y SQL
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Crear una columna rellenándola
Enviado por Danibolson el día 4 de mayo de 2006

Mi problema es que quiero crear una columna en una tabla y que al crearla se quede rellena. Le asigna un valor en cada fila. Pero si solo fuese un valor posible lo haría con default. El problema es que el valor con que se rellene depende de una condición que tiene que cumplir otra columna en la fila donde voy a rellenar.

 
Re: Crear una columna rellenándola
Enviado por programador666 el día 4 de mayo de 2006

Que tal si lo intentas con un trigger. Aunque tal vez si explicaras bien cual es la condicion desencadenante de del relleno de la columna, te podria escribir un ejemplo de un trigger para hacerlo.

O podria ser con un CHECK. Asi que escribe un ejemplo de lo que quieres y con gusto te ayudaremos.

 
Re: Re: Crear una columna rellenándola
Enviado por Danibolosn el día 5 de mayo de 2006

Hola, pues mira tengo una tabla con pendientes de carretera, que es un int que representa el % de inclinación.
Es decir, en una fila hay un 18, en otra un 2, en otra un 6.

Y tengo que crear una columna llamada Dureza que se rellena con "Fuerte" si la pendiente es mayor de 9 y con "Media" en otro caso. Tiene que ser rellenada en todas las filas en el momento en que se crea para que una posible consulta de la dureza de una pendiente a continuación obtenga un resultado correcto.

Y no lo puedo hacer con un trigger.

 
Re: Re: Re: Crear una columna rellenándola
Enviado por programador666 el día 9 de mayo de 2006

Primero lo primero, particularmente los datos que son calculos no los almaceno en una tabla si puedo generarlo en algun query, ya recuerdo
mi profesor de Base de Datos diciendo : "los calculos no se almacenan."

Para el caso tuyo decidas lo que decidas te voy decir como hacerlo via trigger y query.

Primero debo suponer la estructura de la tabla

Pendientes_Carretera
Campo Tipo
Por_Cien Int


Entonces con un query, hago lo siguiente:

select case
when por_cien > 9 then 'Fuerte' else 'Media' end as Dureza
from Pendientes_Carretera

En este caso te genera el campo calculado "en tiempo de ejecucion".

Ahora bien, si quieres como quiera tenerlo calculado en algun campo de una tabla te aconsejo que algun trigger parecido al siguiente:

CREATE TRIGGER Calcular_Dureza ON Pendientes_Carretera
FOR INSERT, UPDATE
AS
begin
if (select por_cien from inserted) > 9 then
dureza = 'Fuerte';
if (select por_cien from inserted) < 9 then
dureza = 'Media';

end

Investiga bien la sintaxis del IF en los triggers, ya que ahora mismo no la tengo bien presente.

Cualquier duda no dudes en preguntar.

Un saludo desde Rep. Dom.

 
Re: Re: Re: Re: Crear una columna rellenándola
Enviado por Danibolson el día 11 de mayo de 2006

Gracias por tu ayuda, pero mi problema no es exactamente ese. Si no que ese valor lo tengo que establecer al crear la columna.
Esa columna todavía no existe en la tabla.

 




Re: Crear una columna rellenándola
Enviado por Danibolson el día 9 de mayo de 2006

Nadie sabe cómo lo podría hacer en una sola sentencia?

 


Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: jugar gratis | amor | navidad 2009 | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados