Creación deprocedure de lectura del archivo DatosGenerales.txt, para la migración de datos.
Errores:
1- En la edición del código para la lectura del archivo se tuvieron errores con el ID ya que el archivo no incluye estas. Y a la hora de que el BULK intentaba insertar no los agregaba y daba un error, ya que la tabla tenia un ID INT IDENTITY(1,1).
Solución: para resolver el error 1 se creo un tabla temporal sin ID y Primary Key. Se uso tablas temporales ya que tablas variables daban un error desconocido.
-----------------------------------------------------------------------------------------------------------------------
-- Verifica si el procedure existe, para eliminarla
IF OBJECT_ID ( N'MG_SP_LEER_DATOS_GENERALES', N'P' ) IS NOT NULL
DROP PROCEDURE MG_SP_LEER_DATOS_GENERALES;
GO
-- Create procedure for read file
CREATE PROCEDURE MG_SP_LEER_DATOS_GENERALES
AS
BEGIN
-- Creacion de una tabla temporal para los datos generales
CREATE TABLE #temp_aux(
TipoOperacion NVARCHAR(MAX) NOT NULL,
Nombre NVARCHAR(MAX) NOT NULL,
Comision NVARCHAR(MAX) NOT NULL,
TasaAnual NVARCHAR(MAX) NOT NULL,
SaldoMinimo NVARCHAR(MAX) NOT NULL,
MultaSaldoMinimo NVARCHAR(MAX) NOT NULL,
MultaSaldoNegativo NVARCHAR(MAX) NOT NULL,
Usuario NVARCHAR(MAX) NOT NULL,
Contraseña NVARCHAR(MAX) NOT NULL
);
-- Lectura del archivo txt
BULK INSERT #temp_aux
FROM 'C:\Users\Edward\SkyDrive\SQL\Proyecto_2_2014\DatosGenerales.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
-- Insert de los datos de la tabla temp a la de FileDatosGenerales de migracion
INSERT dbo.FileDatosGenerales
(
TipoOperacion,
Nombre,
Comision,
TasaAnual,
SaldoMinimo,
MultaSaldoMinimo,
MultaSaldoNegativo,
Usuario,
Contraseña
)SELECT TipoOperacion,
Nombre,
Comision,
TasaAnual,
SaldoMinimo,
MultaSaldoMinimo,
MultaSaldoNegativo,
Usuario,
Contraseña FROM #temp_aux;
-- Elimina #temp_aux
DROP TABLE #temp_aux
END
GO
Referencias:
http://stackoverflow.com/questions/2007857/reading-a-text-file-with-sql-server
http://www.codeproject.com/Tips/775961/Import-CSV-or-txt-File-Into-SQL-Server-Using-Bulk
http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
Horas Trabajadas: 2.5 hora
Autor: Edward Ovares Villegas
No hay comentarios:
Publicar un comentario