SQL Server - Bulk insert pasando parametros

 
Vista:

Bulk insert pasando parametros

Publicado por Carolina (4 intervenciones) el 22/04/2009 16:50:35
Hola, estoy tratando de hacer un bulk insert pasando como parametro la ruta del archivo adjunto anvio el ejemplo, la verdad nose que estoy haciendo mal. He probado con dos formas distintas y ambas me envian error creo debe ser alguna comilla mal puesta..

Si alguien me puede ayudar..por favor...

create table #temp_log_gav
([column 0] nvarchar (500))

declare @variable nvarchar(100);
set @variable = '\gesapp01d$Cubos_PlanningGAVgav.log'

--Una forma
DECLARE @bulk_cmd varchar(1000)
SET @bulk_cmd = 'BULK INSERT #temp_log_gav FROM '@variable
EXEC(@bulk_cmd)

-- la otra forma que he probado.

DECLARE @SQLString NVARCHAR(100)
SET @SQLString = N'BULK INSERT #temp_log_gav FROM '+@variable
EXEC sp_executesql @SQLString

Gracias y Saludos
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: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Bulk insert pasando parametros

Publicado por Isaias (4558 intervenciones) el 23/04/2009 05:29:38
Carolina

La primera y segunda opcion, no funcionaran, porque sencillamente la tabla temporal no sera reconocida en tu segundo contexto de ejecucion, debes declararla no temporal y al final, si lo deseas, hacerle DROP.

Por otro lado, lee en tu ayuda en linea, la forma correcta de pasar los parametros a sp_executesql, te dejo un ejemplo:

DECLARE @IntVariable INT;
DECLARE @SQLString NVARCHAR(500);
DECLARE @ParmDefinition NVARCHAR(500);

/* Build the SQL string one time. */
SET @SQLString =
N'SELECT * FROM AdventureWorks.Sales.Store WHERE SalesPersonID = @SalesID';
/* Specify the parameter format one time. */
SET @ParmDefinition = N'@SalesID int';

/* Execute the string with the first parameter value. */
SET @IntVariable = 275;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@SalesID = @IntVariable;
/* Execute the same string with the second parameter value. */
SET @IntVariable = 276;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@SalesID = @IntVariable;
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