Jak już wspomniano, do analizy wydajności różnych metod potrzebna jest funkcja podziału Podziel ciągi we właściwy sposób – lub następny najlepszy sposób to doskonała lektura. Gdy masz już swoją funkcję, musisz zdefiniować parametr zapytania jako ciąg znaków, a nie tabelę:
Tak więc Twoje zapytanie faktycznie wyglądałoby następująco:
DECLARE @pEmails TABLE (EmailAddress varchar(255));
INSERT @pEmails (EmailAddress)
SELECT Value
FROM dbo.Split(@pEmallString);
Następnie przejdź do właściwości zestawu danych i zamiast przekazywać parametr wielowartościowy @pEmails
do zbioru danych, zamiast tego utwórz nowy @pEmailString
i ustaw wartość jako wyrażenie, które powinno mieć postać:
=Join(Parameters!pEmails.Value, ",")
Spowoduje to przekształcenie parametru wielowartościowego w pojedynczy ciąg rozdzielany przecinkami. Wydaje się dość wsteczne, że musisz przekonwertować go na rozdzielany ciąg, aby następnie podzielić go w SQL, niestety nie znam lepszego sposobu.