almacena Tengo una consulta que está trabajando muy bien:inserción a granel utilizando el procedimiento
BULK INSERT ZIPCodes
FROM 'e:\5-digit Commercial.csv'
WITH
(
FIRSTROW = 2 ,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
pero ahora quiero crear un procedimiento almacenado en la memoria.
he escrito debajo de código para hacer su procedimiento almacenado:
create proc dbo.InsertZipCode
@filepath varchar(500)='e:\5-digit Commercial.csv'
as
begin
BULK INSERT ZIPCodes
FROM @filepath
WITH
(
FIRSTROW = 2 ,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
end
pero su muestra de error:
Msg 102, Level 15, State 1, Procedure InsertZipCode, Line 6 Incorrect syntax near '@filepath'.
Msg 319, Level 15, State 1, Procedure InsertZipCode, Line 7 Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.
Por favor, dime lo que estoy haciendo mal y lo que puedo hacer para que sea trabajar en procedimiento almacenado.
Gracias
gracias ya lo he hecho como una cadena y lo ejecuto utilizando el comando exec, pero pensé que podría haber otras soluciones. muchas gracias. –
marc_s pero ¿puedo ejecutar EXEC sp_executesql @bulkinsert del procedimiento? entonces mi interfaz de C# llamará a mi procedimiento de SQL, pasará parámetros (ruta de archivo, nombre de tabla) y creará una cadena y llamará a SQL dinámico. – Andrey