OlivrT
226Messages postés
2 novembre 2009Date d'inscription
24 mai 2012Dernière intervention
10 déc. 2009 à 16:39
voici un exemple de script que j'ai fait. Nous avons un call center, et une table client par lettre de alphabet. Chaque table associée à un agent commercial. Le problème c'est de mettre à jour ces tables chaque jour selon un nombre de fichier trouvés dans x répertoires sur le réseau. Le nombre de fichier pouvant varier chaque jour, impossible de créer un pack pour un fichier qui peut-être ne sera pas là ...
Le nombre de variantes étant trop important, j''ai donc créé un cursor pour créer un sql dynamique :
SET @SQL = 'INSERT INTO [MaBase].[dbo].[import_temp]('[NUMPAQ], [NOTPAQ])'
DECLARE cursor_forum CURSOR FOR SELECT [rowdesc] FROM [MaBase].[dbo].[tmpFile]
DECLARE @row VARCHAR(600), @insert VARCHAR(1500)
DECLARE @do INT
SET @do = 1
OPEN cursor_forum
FETCH NEXT FROM cursor_forum INTO @row
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
SET @insert = @sql + ' VALUES (' + @row + ')'
EXEC(@insert)
SET @do = @do + 1
END
FETCH NEXT FROM cursor_forum INTO @row
END
CLOSE cursor_forum
DEALLOCATE cursor_forum
Je ne rentre pas dans les détails mais c'est vraiment quand on ne peut faire autrement qu'il faut utiliser les curseurs. Dans mon cas des fichiers à importer tous les jours ... le nombre pouvant varier ... données temporaires ...