none
Archivo en Block de Notas separado por comas a columnas en SQL RRS feed

  • Pregunta

  • Que tal amigos
    Tengo un archivo txt en block de notas con la siguiente informacion:

    codigo,nombre,fecha,producto
    0001,empresa1,26-feb-19,camisas

    Me pidieron crear una tabla en la BD con esta información (0001,empresa1,26-feb-19,camisas) en una columna llamada ROW_ID.

    ROW_ID

    0001,empresa1,26-feb-19,camisas


    Luego de que tenga esta tabla creada debo crear un query que me divida la información separada por comas en columnas (codigo,nombre,fecha,producto)

    codigo

    nombre

    fecha

    producto

    0001

    empresa1

    26-feb-19

    camisas

    Pero no tengo idea de como realizarlo, muchas gracias de antemano por la ayuda

    miércoles, 27 de febrero de 2019 1:44

Todas las respuestas

  • Hola Jaimekazuya:

    Bueno de tu mensajes, yo creo que puedes hacerlo de un modo un poco más pillo, pero con un resultado igual.

    En vez de hacer el trabajo fácil, y luego partirlo mediante una sentencia, podemos, dejarle al Sql Server que haga el trabajo difícil, y luego mediante una sentencia más simple, hacer nosotros, el fácil.

    Abres el Management Studio, y te posicionas encima de la base de datos.

    Pon el nombre de la tabla que te parezca, por defecto te pondrá el nombre del archivo.

    En la vista previa, el importador ya reconoce las columnas

    Modifica el nombre de las columnas y tipos de datos, a tu criterio

    Pulsas siguiente, si todo es ok, en las siguientes ventanas.

    Ahora ya dispones de una tabla llamada, en mi caso archivo, en el tuyo como hayas querido, con las columnas creadas y formateadas.

    Solo resta hacer el paso inverso, caso de queererlo.

    Nueva consulta.

    SELECT CAST(a.id + a.empresa + a.fecha + a.descripcion AS NVARCHAR(MAX)) AS ROW_ID
    INTO documentoTXT
    FROM dbo.archivo AS a;


    Juntamos en una tabla todas las columnas, mediante Select Into.

    Con esto ya lo tendrías.

    Importar archivos

    https://docs.microsoft.com/es-es/sql/relational-databases/import-export/import-flat-file-wizard?view=sql-server-2017

    La opción de como te han pedido, es mucho más engorroso.

    CREATE TABLE archivoCSV
    (
    ROW_ID   VARCHAR(MAX) 
    );
    GO
    SELECT *
    FROM archivoCSV;
    BULK INSERT archivoCSV FROM N'c:\bd\archivo.txt';
    GO

    Luego ya tienes que recurrir a un separador de cadentas tipo sting_split....etc

    Tendrías que recurrir a un pivot..... opciones muchas pero mucho más engorrosas.

    Espero te ayude

    • Propuesto como respuesta Pedro Alfaro miércoles, 27 de febrero de 2019 15:33
    miércoles, 27 de febrero de 2019 5:24
  • Deleted
    • Propuesto como respuesta Pedro Alfaro miércoles, 27 de febrero de 2019 15:33
    miércoles, 27 de febrero de 2019 7:23