【问题标题】:Creating Index on Table in a schema在模式中的表上创建索引
【发布时间】:2011-08-04 00:50:14
【问题描述】:

我以“sa”身份登录,拥有完整的管理员权限,并且正在运行以下命令:

CREATE NONCLUSTERED INDEX [IDX_EntityAuditId] ON [Maintenance.EntityAuditMessagesArchive] 
([EntityAuditId] ASC) ON [PRIMARY]

并得到错误:

找不到对象“Maintenance.EntityAuditMessagesArchive”,因为它不存在或您没有权限。

对象确实存在,因为我可以从中选择。此外,如果表不在模式中,则该命令有效。即

CREATE NONCLUSTERED INDEX [IDX_EntityAuditId] ON [EntityAuditMessagesArchive] 
    ([EntityAuditId] ASC) ON [PRIMARY]

有效(当然,当我创建没有架构的表时)。

所以,当表在维护模式中时,我无法创建索引。这是为什么呢?

【问题讨论】:

    标签: sql database sql-server-2005 database-schema indexing


    【解决方案1】:

    您的名字中有.。我猜您需要将其更改为:

    [Maintenance].[EntityAuditMessagesArchive]

    括号内的句点表示它是名称的一部分,而不是分隔符。

    【讨论】:

    • 换句话说 - 你是绝对正确的。感谢您的帮助!
    • @brundlefly - 乐于助人。当您更改 SSMS 生成的脚本并将括号放在错误的位置(或在 SSMS 生成的括号中插入内容)时,我自己已经这样做了几次。
    猜你喜欢
    • 2013-10-24
    • 2013-11-27
    • 2015-08-28
    • 2014-08-21
    • 2018-07-28
    • 2013-06-02
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多