一键生成统计信息语句


if exists (select * from tempdb..sysobjects where name ='##T')
 drop table ##T
 create table ##T (name varchar(128),keys varchar(1000),tab varchar(100))
 
exec sp_MSforeachtable '
 
insert ##T(name,keys)
 exec sp_helpstats ''?''
 update ##T set tab=''?''
 where tab is null
'

 
select

'
 begin try
 if object_id('''+tab+''') is not null and
 exists(select 1 from sys.stats
 where name ='''+name+''' and object_id = object_id('''+tab+'''))
 drop  STATISTICS  '+tab+'.'+quotename(name)+'
 end try
begin catch
 print  ERROR_MESSAGE()
 end catch
' del,
 
 '
 if object_id('''+tab+''') is not null and
not exists(select 1 from sys.stats
 where name ='''+name+''' and object_id = object_id('''+tab+'''))
 create STATISTICS '+quotename(name)+' on '+tab+'('+keys+')
 '  ad
 
 from ##T a
 
--WHERE exists(select * from [master].[dbo].[UnionALL]
--where quotename(sch)+'.'+quotename(tbl)=a.tab and a.keys like '%'+col+'%')
--select * from ##T
 drop table ##T
 
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值