none
sql08 r2,如何对所有库的A表(如果存在)B字段建索引 RRS feed

  • 问题

  • 如题。结构一样的库太多,需要对所有库的某表某字段添加索引。用的foreachdb,但只在当前库执行。

    EXEC sp_MSforeachdb @command1="use ?",
    @command2="CREATE NONCLUSTERED INDEX [idx_tel] ON [dbo].[CRM_CUSTOMER]
    (
    	[TEL] ASC
    )
     " 



    2015年4月10日 3:02

答案

  • EXEC sp_MSforeachdb 
    N'
    USE [?]
    IF OBJECT_ID(N''[dbo].[CRM_CUSTOMER]'') IS NOT NULL
    	CREATE NONCLUSTERED INDEX [idx_tel] ON [dbo].[CRM_CUSTOMER]
    (
    	[TEL] ASC
    )'

    2015年4月10日 5:53

全部回复

  • 如题。结构一样的库太多,需要对所有库的某表某字段添加索引。用的foreachdb,但只在当前库执行。

    EXEC sp_MSforeachdb @command1="use ?",
    @command2="CREATE NONCLUSTERED INDEX [idx_tel] ON [dbo].[CRM_CUSTOMER]
    (
    	[TEL] ASC
    )
     " 


    it does allow parameter, just put sql statement in ' ' like:

    EXECUTE master.sys.sp_MSforeachdb 'USE [?]; EXEC sp_spaceused'

     
    2015年4月10日 3:49
  • EXEC sp_MSforeachdb 
    N'
    USE [?]
    IF OBJECT_ID(N''[dbo].[CRM_CUSTOMER]'') IS NOT NULL
    	CREATE NONCLUSTERED INDEX [idx_tel] ON [dbo].[CRM_CUSTOMER]
    (
    	[TEL] ASC
    )'

    2015年4月10日 5:53
  • 动态sql+游标也可以

    Love SQL

    2015年4月10日 10:57
  • 你的if解决了master库的问题
    2015年4月13日 2:50