Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Trasformazione di un parametro multivalore in una tabella temporanea in SQL Server Business Intelligence Development Studio

Come è stato affermato, è necessaria una sorta di funzione di divisione, per l'analisi sulle prestazioni di vari metodi Dividi le stringhe nel modo giusto o nel modo migliore successivo è un'ottima lettura. Una volta che hai la tua funzione, devi quindi definire il tuo parametro di query come una stringa, piuttosto che una tabella:

Quindi la tua domanda diventerebbe effettivamente:

DECLARE @pEmails TABLE (EmailAddress varchar(255));

INSERT @pEmails (EmailAddress)
SELECT  Value
FROM    dbo.Split(@pEmallString);

Quindi vai alle proprietà del tuo set di dati e invece di passare il parametro multivalore @pEmails al dataset, creane invece uno nuovo @pEmailString e imposta il valore come espressione, che dovrebbe essere:

=Join(Parameters!pEmails.Value, ",")

Questo trasforma il tuo parametro multivalore in una singola stringa delimitata da virgole. Sembra piuttosto indietro che devi convertirlo in una stringa delimitata, solo per poi dividerlo in SQL, sfortunatamente non conosco un modo migliore.