Knappste Art und Weise zu verändern eine CSV-Zeichenfolge in eine Tabelle in TSQL?

-- Given a CSV string like this:

declare @roles varchar(800)
select  @roles = 'Pub,RegUser,ServiceAdmin'

-- Question: How to get roles into a table view like this:

select  'Pub'
union
select  'RegUser'
union
select  'ServiceAdmin'

Nachdem dieses posting, ich begann das Spiel mit einigen dynamischen SQL. Dies scheint zu funktionieren, aber scheint, wie es könnte einige Sicherheitsrisiken durch die Verwendung von dynamischen SQL - Gedanken auf?

declare @rolesSql varchar(800)
select  @rolesSql = 'select ''' + replace(@roles, ',', ''' union select ''') + ''''
exec(@rolesSql)

InformationsquelleAutor Paul Fryer | 2010-09-17

Schreibe einen Kommentar