Bonjour à toutes et tous,

Je sèche lamentablement sur l'utilisation paramétrée de l'instruction OPENROWSET(BULK ...)

J'ai des fichiers d'archives que je peux lire comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM OPENROWSET(BULK 'D:\200803.bulk', FORMATFILE = 'D:\200803.fmt') AS data
Pour me simplifier la vie, je souhaitais paramétrer cette lecture d'archives à l'aide d'une fonction que j'imaginais comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
ALTER FUNCTION [dbo].[bulkArchive]
  (@idArchive varchar(50))
RETURNS table
AS
RETURN
  SELECT * FROM OPENROWSET(BULK 'D:\' + @idArchive + '.bulk', FORMATFILE = 'D:\' + @idArchive + '.fmt') AS data
Et que j'aurais pu facilement utiliser dans un SELECT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM dbo.bulkArchive('200803')
Malheureusement l'utilisation de variables dans OPENROWSET n'est pas permise et donc impossible d'écrire ma fonction.

La solution serait peut-être d'utiliser du SQL dynamique dans ma fonction mais je ne vois pas comment faire. Est-ce que quelqu'un aurait une idée ?

D'avance merci pour votre aide.
Stéphane