IF OBJECT_ID('[fnConvertXmlIntListToTable]') IS NOT NULL BEGIN DROP FUNCTION [fnConvertXmlIntListToTable] END GO CREATE FUNCTION [fnConvertXmlIntListToTable]( @pXml xml ,@pRootName varchar(100) ,@pNodeName varchar(100) ) RETURNS TABLE AS RETURN ( SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) Rn, t.value('.','int') AS Data FROM @pXml.nodes('/*[local-name()=sql:variable("@pRootName")]/*[local-name()=sql:variable("@pNodeName")]') AS x(t) ); GO