Comme cela a été indiqué, vous avez besoin d'une sorte de fonction de fractionnement, pour analyser les performances de diverses méthodes Séparer les chaînes de la bonne façon - ou de la meilleure façon suivante est une excellente lecture. Une fois que vous avez votre fonction, vous devez ensuite définir votre paramètre de requête sous forme de chaîne plutôt que de table :
Ainsi, votre requête deviendrait :
DECLARE @pEmails TABLE (EmailAddress varchar(255));
INSERT @pEmails (EmailAddress)
SELECT Value
FROM dbo.Split(@pEmallString);
Allez ensuite dans les propriétés de votre jeu de données, et au lieu de passer le paramètre multivaleur @pEmails
au jeu de données, créez-en un nouveau à la place @pEmailString
, et définissez la valeur en tant qu'expression, qui doit être :
=Join(Parameters!pEmails.Value, ",")
Cela transforme votre paramètre à plusieurs valeurs en une seule chaîne délimitée par des virgules. Il semble assez rétrograde que vous ayez besoin de le convertir en une chaîne délimitée, pour ensuite le diviser en SQL, malheureusement je ne connais pas de meilleur moyen.