可以重新运行的TSQL脚本索引创建

可以重新运行的TSQL脚本索引创建,tsql,scripting,indexing,Tsql,Scripting,Indexing,我想要一个索引脚本,当新表添加到我的模式中时,我可以将其附加到并重新运行。出于这个原因,我想跳过创建已经存在的索引,但我一直无法找到一种干净的方法来检测索引是否已经存在。我想做的是这样的: IF OBJECT_ID(N'[dbo].[Users].[IDX_LastName]', '') IS NULL CREATE INDEX [IDX_LastName] ON [dbo].[Users] ( [LastName] ASC ) 我认为这将满足您的需要

我想要一个索引脚本,当新表添加到我的模式中时,我可以将其附加到并重新运行。出于这个原因,我想跳过创建已经存在的索引,但我一直无法找到一种干净的方法来检测索引是否已经存在。我想做的是这样的:

IF OBJECT_ID(N'[dbo].[Users].[IDX_LastName]', '') IS NULL
    CREATE INDEX [IDX_LastName] ON [dbo].[Users] 
    (
        [LastName] ASC
    )

我认为这将满足您的需要,尽管我不确定是否有更简洁的方法

IF NOT EXISTS(SELECT * FROM sys.indexes WHERE 
     name = 'IDX_LastName' and object_id=object_id('[dbo].[Users]'))
CREATE INDEX [IDX_LastName] ON [dbo].[Users] ([LastName] ASC)

我认为这将满足您的需要,尽管我不确定是否有更简洁的方法

IF NOT EXISTS(SELECT * FROM sys.indexes WHERE 
     name = 'IDX_LastName' and object_id=object_id('[dbo].[Users]'))
CREATE INDEX [IDX_LastName] ON [dbo].[Users] ([LastName] ASC)