J'ai une requête qui fonctionne très bien:insertion en bloc en utilisant la procédure stockée
BULK INSERT ZIPCodes
FROM 'e:\5-digit Commercial.csv'
WITH
(
FIRSTROW = 2 ,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
mais maintenant je veux créer une procédure stockée pour elle.
J'ai écrit ci-dessous code pour la procédure stockée:
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
mais son erreur indiquant:
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.
S'il vous plaît me dire ce que je fais mal et ce que je peux faire pour le rendre travailler dans une procédure stockée.
Merci
merci je l'ai déjà fait comme une chaîne et exécutez-le en utilisant exec mais je pensais qu'il pourrait y avoir d'autres solutions. Merci beaucoup. –
marc_s mais puis-je exécuter EXEC sp_executesql @bulkinsert à partir de la procédure? donc mon interface C# appellera ma procédure SQL, passera les paramètres (chemin du fichier, nom de la table), et sa va créer une chaîne et appeler SQL dynamique? – Andrey