SQL - Insertar datos en una tabla destino con diferente tipo de dato de la tabla origen

 
Vista:

Insertar datos en una tabla destino con diferente tipo de dato de la tabla origen

Publicado por Grace (2 intervenciones) el 20/01/2020 18:17:59
Necesito hacer mediante un trigger la inserción de dos datos
en una base de datos destino 'Y' con los campos: DEPTO smallint y DESCRIP varchar(120)
la base de datos origen 'X' tiene los campos CLAVE varchar(10) y NOMBRE varchar(120),
Como podría poner el dato CLAVE que es varchar en el campo DEPTO que es smallint sin cambiar el tipo de dato ya que tanto CLAVE como DEPTO son llaves primarias...
Cada que se agregue un uevo dato en 'X' se tiene que agrgear tambien en 'Y' mediante un trigger
Quisiera saber si hay otra solucion que no sea la de borrar la lllave primaria, cambiar el dato, y volver a generar la llave.
Gracias.
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
Imágen de perfil de Isaias
Val: 2.761
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Insertar datos en una tabla destino con diferente tipo de dato de la tabla origen

Publicado por Isaias (1460 intervenciones) el 20/01/2020 18:47:43
¿En que motor de base de datos?
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

motor de base de datos

Publicado por Grace (2 intervenciones) el 20/01/2020 19:02:32
en sql server
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
Imágen de perfil de Isaias
Val: 2.761
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

motor de base de datos

Publicado por Isaias (1460 intervenciones) el 21/01/2020 16:41:38
Tienes que aplicar el CONVERT o CAST, para convertir un valor VARCHAR en un INT, solo debes estar seguro que el varchar trae un valor numerico.

1
2
3
4
declare @MiValorEntero INT
declare @MiValorChar char(3) = '123'
 
SET @MiValorEntero = CAST(@MiValorChar AS INT)
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