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

Parametro con valori di tabella in Stored Procedure e Entity Framework 4.0

Sono d'accordo sul fatto che passare una stringa CSV sia la soluzione migliore in questo caso. Vorrei proporre un modo più semplice per dividere la stringa CSV, senza creare tabelle e funzioni, utilizzando CTE:

declare @separator char(1);
set @separator = ',';

;with baseCte as
(select left(@ValueList, charindex(@separator, @ValueList) - 1) as Value,
substring(@ValueList, charindex(@separator, @ValueList) + 1, len(@ValueList)) 
as rest
union all
select left(rest, charindex(@separator, rest) - 1) as Value, 
substring(rest, charindex(@separator, rest) + 1, len(rest)) from baseCte
where len(rest) > 1
)
select Value from baseCte
OPTION (MAXRECURSION 0);