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

Cod*_*rue 0 t-sql indexing scripting

我希望有一个索引脚本,我可以追加到并重新运行,因为新表添加到我的架构中.出于这个原因,我想跳过创建已经存在的索引,但我一直无法找到一种干净的方法来检测索引已经存在.我想做的是这样的:

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

Mar*_*ith 5

我认为这会做你需要的,虽然我不确定是否有更简洁的方法.

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)
Run Code Online (Sandbox Code Playgroud)