create view dbo.v_stat as
select c.name as ColumnName, sc.stats_column_id, s.name as StatName, OBJECT_NAME(sc.object_id) as TblName
from sys.stats_columns sc
inner join sys.columns c on sc.column_id = c.column_id and sc.object_id = c.object_id
inner join sys.stats s on s.stats_id = sc.stats_id and sc.object_id = s.object_id
left outer join sys.indexes i on i.index_id = s.stats_id and i.object_id = s.object_id
where i.name is null
go
select distinct 'CREATE STATISTICS [' + v.StatName + '] on dbo.' + v.TblName + '(' + a.Fields + ');'
from dbo.v_stat v
join (select Fields = replace ((select ColumnName as 'data()'
from dbo.v_stat where StatName = s.StatName
for xml path('')), ' ',','),
s.StatName
from dbo.v_stat s
group by s.StatName) as a on a.StatName = v.StatName;