none
SQL Server Procedure RRS feed

  • Pregunta

  • Estimados amigos,

    Actualmente encuentro en un proyecto de syncronización de datos, y para ello necesito grabar el contenido de una tabla en un campo text separados por como ejemplo

    El Resultado del Select 

    id Nombre Telefono Dirección
    1 Pedro Perez La Casa morada con techo azul

    hacer select a la tabla convertirlo en un campo separados por coma Ejemplo:

    @texto = '1,Pedro,Perez,La Casa morada con Techo azul'

    y el valos de texto insertarlo en otra tabla

    Insert into tablaDestino (id, Datos, fecha, status) values ('5', @texto, SYSDATETIME(), '1')

    Importante es que debo hacerlo en SQL Server 2008 R2 con Store Procedures y Triggers

    lunes, 29 de abril de 2019 14:52

Respuestas

  • Hola Dr. Guindows:

    Un ejemplo

    create table dbo.origen (id int, nombre varchar(100), apellido varchar(100), direccion varchar(100))
    go
    insert into dbo.origen (id, nombre, apellido, direccion)
    values
    (1,'Pedro','perez','la casa morada con techo azul'),
    (2,'Juan','Fernandez','la otra casa');
    go
    create table dbo.tablaDestino(id int, datos varchar(max), fecha datetime, status int)
    go
    
    CREATE PROCEDURE insertaOrigen 
    AS
    	BEGIN
    		INSERT INTO dbo.tablaDestino (id, datos, fecha, status)
    		SELECT      id
    				  , concat(CAST(id AS VARCHAR(10)),',', nombre ,',', apellido,',', direccion)
    				  , GETDATE()
    				  , 1
    			   FROM dbo.origen;
    	END;
    
    exec insertaOrigen

    Salida


    • Propuesto como respuesta eRiver1 martes, 30 de abril de 2019 23:20
    • Marcado como respuesta Pablo RubioModerator viernes, 10 de mayo de 2019 15:20
    lunes, 29 de abril de 2019 15:53

Todas las respuestas

  • Hola Dr. Guindows:

    Un ejemplo

    create table dbo.origen (id int, nombre varchar(100), apellido varchar(100), direccion varchar(100))
    go
    insert into dbo.origen (id, nombre, apellido, direccion)
    values
    (1,'Pedro','perez','la casa morada con techo azul'),
    (2,'Juan','Fernandez','la otra casa');
    go
    create table dbo.tablaDestino(id int, datos varchar(max), fecha datetime, status int)
    go
    
    CREATE PROCEDURE insertaOrigen 
    AS
    	BEGIN
    		INSERT INTO dbo.tablaDestino (id, datos, fecha, status)
    		SELECT      id
    				  , concat(CAST(id AS VARCHAR(10)),',', nombre ,',', apellido,',', direccion)
    				  , GETDATE()
    				  , 1
    			   FROM dbo.origen;
    	END;
    
    exec insertaOrigen

    Salida


    • Propuesto como respuesta eRiver1 martes, 30 de abril de 2019 23:20
    • Marcado como respuesta Pablo RubioModerator viernes, 10 de mayo de 2019 15:20
    lunes, 29 de abril de 2019 15:53
  • Solo un comentario, INTERNACIONALMENTE el carácter para separar valores es el PIPE (|), no la coma, tendrá muchos problemas si aparecen textos con comas, no sabrá donde termina he inicia el siguiente valor.

    Cuando se refiere a SINCRONIZACION, ¿exactamente que es?


    IIslas Master Consultant SQL Server

    • Propuesto como respuesta eRiver1 martes, 30 de abril de 2019 23:19
    martes, 30 de abril de 2019 16:58