Kimberly Killian

Cómo Dividir un archivo de Valores Separados por Comas (CSV) en Columnas de SQL Server

April 21, 2017 by

Recibir un archivo delimitado por comas no es una nueva tecnología y tampoco es difícil de lidiar con tal archivo en SQL Server. De hecho, es extremadamente fácil. Hay muchos casos para los que usted desearía hacer esto. Por ejemplo, usted tiene una fuente de datos externa que necesita ser importada en su base de datos/tabla. Hay un par de maneras de hacer esto, aunque la más rápida y fácil es usar la característica nativa “import” en SQL Server Management Studio y usted puede incluso grabarlo a un Paquete SSIS al final del proceso. El resultado final de usar este método es que el archivo CSV externo es cargado a la tabla SQL Server donde las columnas son creadas y las filas pobladas.

Si usted sólo está hacienda una sola importación de datos, entonces recomiendo la característica nativa Import en SQL Server Management Studio. Si usted estará haciendo este proceso más de una vez, entonces le mostraré cómo grabar este proceso en un Paquete SSIS al final. Desde SQL Server 2005-2016, la característica no ha cambiado. Para este ejemplo de abajo, he usado SQL Server Express 2014 de nuevo, es el mismo e la versión actual, así como las muchas versiones pasadas. Para accederlo, desde SQL Server Management Studio expanda la rama del servidor a sus bases de datos. Haga clic derecho en el nombre de su base de datos y abra el menú de tareas, luego seleccione Import Data. Esto abrirá SQL Server Import and Export Wizard:

El asistente abre la pantalla de presentación. Haga clic en Next para continuar:

Desde el menú desplegable Data Source, seleccione Flat File Source, luego seleccione su archivo CSV desde la línea File Name Browse que usted ha grabado en su sistema de archivos. Ya que estamos usando la fuente de archivos planos, podemos usar una extensión csv o txt. En nuestro ejemplo, usaremos CSV.

Fuente de Datos

Una vez que su archivo sea seleccionado, complete el resto del formulario:

Complete la sección Format. Si su archivo de texto contiene una comilla doble (“) cerca de cada columna/fila de datos, entonces asegúrese de añadir eso como el calificador de Texto. Los valores por defecto para Header Row Delimiter son {CR}{LF}. Si usted tiene nombres de columnas en las primeras filas, usted puede optar por saltarlas seleccionando el número de filas a seleccionar. Si usted prefiere mantener sus nombres de columnas, deje que esto se quede con el valor por defecto 0 y asegúrese de que selecciona “Column names in the first data row”.

Luego, seleccione Columns en la parte izquierda del formulario Source.

Esto le dará una vista previa de los datos a ser importados. Note que aquí verá las cabeceras de columnas que optó por mantener.

Luego seleccione la opción “Advanced” desde el menú de la izquierda. Esta opción es importante porque usted podrá seleccionar sus tipos de columnas y anchos de columnas para cada columna. Es una muy buena idea verificar que cada tipo de columna y tamaño de columna son apropiados para cada columna.

After you have updated each column with the appropriate column type and column width, click on the Preview option on the left menu. This will show you a preview of your data. At this time, you will also be able to go back and update column types and widths if necessary.

Haga clic en Next en la pantalla de arriba. Esto le llevará a la pantalla de selección de destino.

Destino de la Base de Datos

Desde aquí, usted necesitará seleccionar su tabla destino para los datos. Para este ejemplo, vamos a crear una tabla o destino dentro del asistente.

Cambie el destino a Microsoft OLE DB Provider for SQL Server. Esto le permitirá conectarse a su SQL Server.

Seleccione el nombre de su Servidor y el nombre de su Base de Datos desde los menús desplegables o escríbalos, luego seleccione Next.

Usted será llevado a la selección de fuente y destino. SQL Server poblará automáticamente su fuente de datos que ingresó al principio de esta lección, así como un destino por defecto a una tabla llamada igual que su fuente de datos. Si usted ya tiene una tabla creada en su base de datos, puede que quiera cambiar el destino a eso o sólo cambiar el nombre de la tabla definido por SQL Server

Aquí usted verá la fuente del archivo CSV con el que hemos estado trabajando, así como la tabla destino en la base de datos. He seleccionado usar el nombre por defecto dado por SQL Server. De todas maneras, siéntase libre de cambiar el nombre o seleccionar una tabla diferente. Haga clic en el botón Edit Mappings si deseada hacer cambios a la tabla destino o editar el script de crear la tabla. Aquí también puede habilitar la inserción de identidad.

Si no se necesita hacer cambios, seleccione OK en esta pantalla y luego seleccione Preview en la siguiente.

Preview le dará una vista previa de cómo sus datos se verán en la tabla.

Una vez que los datos son verificados, cierre esta pantalla y seleccione Next.

Ahora esta pantalla es probablemente la más importante en esta serie porque le habilita para crear un paquete SSIS después. Yo uso casi siempre esta opción porque usted no tendrá que rehacer ninguno de los pasos arriba para corridas subsecuentes. También, el paquete SSIS puede ser añadido a un trabajo de SQL Agent y programado. Dado que usted graba el paquete SSIS, usted también podrá modificar el paquete SSIS.

Usted tiene la opción de grabar su paquete SSIS directamente en SQL Server o en su Sistema de Archivos. Dependiendo de cómo está estructurado, ninguno es mejor que el otro en mi opinión, sólo depende de cómo lo quiere organizar. Haga clic en Next para continuar. Si usted decide grabar en el sistema de archivos, usted será presentado con esta pantalla para grabar el archivo.

Añada el nombre del archivo y la localización del directorio y haga clic en Next. Se le presentará una pantalla de confirmación.

Luego, haga clic en Finish.

Si la importación fue exitosa, usted debería obtener una confirmación.

Usted ha importado exitosamente un archivo CSV a una tabla de SQL Server. No hay scripts involucrados en este proceso, sólo la característica nativa Import en SQL Server Management Studio. Esto es SQL Server 101 básico, pero es una herramienta muy importante y útil.

Related Links:

 
Kimberly Killian
Desarrollo de base de datos SQL

Acerca de Kimberly Killian

With over 20 years of total IT experience, Kim has a very diverse background. She has worked in positions as a programmer, IT architect, DB Engineer, DBA, ETL developer as well as Senior Level Technical Consultant. For the last 15 years has focused her technology experience within the world of database solutions and specifically with MS SQL Server. She has published numerous articles spotlighting SQL Server and is an expert in monitoring and reporting on SQL Server performance. View all posts by Kimberly Killian

168 Views