Importation de fichier text (csv) rapidement

Contenu du snippet

On a souvent besoin d'importer du contenu CSV dans une table SQLServer 20xx, mais sur SQLServer Express (la version gratuite) on a pas SSIS.
Je vous propose cette procédure stockée testée sous SQLServer 2005 Express et 2008.
La perf ? sur mon PC, je viens d'importer 300 000 records en quelques secondes.

Source / Exemple :


CREATE PROCEDURE SpB_AddFileCsv 
	@NomTable nvarchar(50),
	@Fichier nvarchar(2000)
AS
BEGIN
	SET NOCOUNT ON;
        DECLARE @REQUEST varchar(4000)
        -- Importation des records
	SET @REQUEST = 'BULK INSERT ' + @NomTable + ' FROM ''' + @Fichier + ''' WITH (FIELDTERMINATOR='';'',ROWTERMINATOR = ''\n'')'
	EXECUTE @REQUEST;
END
GO

Conclusion :


Il faudra changer le séparateur de champs (ici ;) ou de record (ici retour chariot)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.