SQL - UPDATE en SQL

   
Vista:

UPDATE en SQL

Publicado por NaSSaSuS (2 intervenciones) el 30/09/2007 02:30:08
Hola, Tengo un problemilla con una consulta, a ver si es posible de que se pueda hacer en sql o no.
Tengo una tabla con 2 columnas(Cod, Descripcion)
Por ejemplo:
1 Cursos
2 Tutoriales
3 Manuales

En otra tabla con varios campos, en 2 de ellos tengo que reflejar los datos de la primera tabla, vamos tengo la descripcion pero no tengo el codigo, y lo que quiero actualizar de esta tabla es el campo codigo.
Por ejemplo tengo en la tabla
Cod Descripcion
NULO Cursos
Nulo Tutoriales
Nulo Manuales

Alguien sabe si hay alguna manera de poder actualizar el campo Cod de forma que si me pone en descripcion cursos pues le ponga al codigo 1, si pone manuales 3 ....

Yo lo he intentado hacer mas o menos así
Update Tabla Set Cod = (Select Cod From Tabla2 inner join Tabla on Descripcion = Tabla.Descripcion)

Pero vamos no va XDD

A ver si alguien me puede hechar una mano, gracias de antemano

Un Saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:UPDATE en SQL

Publicado por ^whippersnapper^ (2 intervenciones) el 30/09/2007 07:04:37
Mira, si el campo Cod en Tabla( asumiendo que ésta es la que tiene otros campos además de Cod y Descripción) admite valores nulos puedes crear un trigger y cada vez que insertes o modifiques la Descripción en Tabla, el Cod que le corresponde tomará el mismo valor que en Tabla2 por ejemplo:

create trigger Actualizar ON Tabla
for insert, update
as
if update(Descripcion)
update Tabla set Cod = (select Cod from Tabla1 where Tabla1.Descripcion = Tabla.Descripcion)
go

Espero que te sirva :D
Salu2x
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE en SQL

Publicado por NaSSaSuS (2 intervenciones) el 30/09/2007 13:58:31
Muchas gracias ^whippersnapper^, no se me habia ocurrido, ahora he estado probando pero no me va, la base de datos la tengo en access y me parece a mí que el access no admite trigger o no se yo como utilizarlo. Sabrias otra manera de hacerlo?

Un Saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE en SQL

Publicado por ^whippersnapper^ (2 intervenciones) el 30/09/2007 20:12:56
Colega, lo siento, nunca he trabajado con Access, sólo he trabajado con SQL Server, de todos modos, pensé en otra manera: es una operación para SQL Server aunque espero que te dé una nueva idea. Consiste en hacer un procedimiento almacenado a la hora de Insertar o Actualizar el campo Descripción en "Tabla"( o sea la segunda de las que planteas),
insertas los datos que conoces y dentro del mismo procedimiento calculas el valor de Cod que le corresponde a la Descripcion que insertarás, supongamos que entre los otros tantos campos que tiene "Tabla" está "OtroCampo", quedaría algo así:

create procedure Insertar
@Descripcion char(10),
@OtroCampo char(10)
as
declare @Cod int
set @Cod = (select Cod from Tabla2 where Tabla2.Descripcion = @Descripcion)
insert into Tabla values (@Cod, @Descripcion, @OtroCampo)
GO

No es mucho, pero bueno, espero que te sirva de algo :)

Salu2x
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:UPDATE en SQL

Publicado por Isaias (5073 intervenciones) el 01/10/2007 19:05:44
UPDATE tutabla SET CODIGO = CASE WHEN DESCRIPCION = 'CURSOS' THEN 1 WHEN DESCRIPCION = 'MANUALES' THEN 3 END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar