Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Paramètre de table dans la procédure stockée et Entity Framework 4.0

Je suis d'accord que le passage d'une piqûre CSV est la meilleure solution dans ce cas. Je voudrais proposer un moyen plus simple de diviser la chaîne csv, sans créer de tables et de fonctions, en utilisant 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);