2009-04-29 6 views
2

Voici la syntaxe pour commencer (données classées omises)Microsoft SQL Studio Agent SQL Server, créez une insertion en bloc avec des paramètres dynamiques

BULK INSERT 
[dbName].[dbo].[data_200801] FROM '\\servername\wwwroot\path\Files\data_200904.csv' WITH 
     (
     FIELDTERMINATOR = ';', 
     ROWTERMINATOR = '\n' 
    ); 

Cela fonctionne bien comme l'une des étapes du travail. Là où je frappe un mur est que j'ai besoin le nom de fichier à être dynamique avec une fonction SQL telles que

Nom du fichier = data_ & Année (GetDate()) & Mois (GetDate()) & .csv

Je n'arrive pas à concaténer la fonction dynamique de mon travail.

Est-ce que quelqu'un qui aime les chalenges peut m'aider?

Merci

+0

ajouté le code pour vous –

+0

marquer (coche) –

Répondre

1

créer une procédure stockée qui exécute cette sql comme dynamique, la construction de la commande dans une chaîne en utilisant votre méthode de nom de fichier. à partir du travail exécutez cette nouvelle procédure stockée.

CREATE PROCEDURE MyBulkInsert 
AS 
DECLARE @Query varchar(500) 
SET @Query='BULK INSERT [dbName].[dbo].[data_200801] FROM ''\servername\wwwroot\path\Files\data_'+CONVERT(varchar(4),Year(GetDate()))+RIGHT('0'+CONVERT(varchar(2),Month(GetDate())),2)+'.csv'' WITH (FIELDTERMINATOR = '';'', ROWTERMINATOR = ''\n'');' 
EXECUTE (@Query) 
Go 

terme de cette procédure de travail et non pas le cas a été répondu à la question, commande insert en vrac

+0

droit en tant TSQL .... I l'a trouvé. Merci Déclare @Sql Nvarchar (255); SET @ sql = 'VRAC INSERT [blabla] [dbo] [data_200801] FROM "\\ chemin de blabla \ \ Files \ data_" & Function ici et ".csv" AVEC ( FIELDTERMINATOR =.. ";" , ROWTERMINATOR = "\ n" ) '; Exec sp_ExecuteSql @Sql; –

+0

@Anoue, t-sql n'utilise pas "&" pour la concaténation, regardez mon code pour un exemple ... –

Questions connexes