I like the xml way, then I worked on that version
Here is another way thanks to this forum. It is a generalize version.
I prepared this version (my original did not used XML)
By being helped by forums feedback from SQL central
Forward it to yours peers.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Bernabé Díaz
-- Create date: 04/08/2010
-- Description: To return a list from an string
-- =============================================
CREATE PROCEDURE Usp_GetTableList
@strDataSet AS VARCHAR(max)
,@delimiter AS VARCHAR(10)=','
,@Rt AS VARCHAR(128)='SYSNAME'
AS
BEGIN
SET NOCOUNT ON;
DECLARE @STR VARCHAR(MAX);
SET @strDataSet=ISNULL(@strDataSet,'')
SET @STR=
'
DECLARE @xml AS XML;
SET @xml = CAST((''<X>''+REPLACE('''+@strDataSet+''','''+@delimiter+''' ,''</X><X>'')+''</X>'') AS XML);
SELECT N.value(''.'', '''+@Rt+''') AS x FROM @xml.nodes(''X'') AS MyTable(N);
'
EXEC(@STR)
END