【问题标题】:Cannot schema bind view MyName' because name MyTable is invalid for schema binding无法架构绑定视图 MyName',因为名称 MyTable 对架构绑定无效
【发布时间】:2014-08-05 06:26:26
【问题描述】:

我正在尝试在 SQL Server 2012 中针对具有 10 个连接(内连接和左连接)的查询创建索引视图,该连接被大量访问。

但是,当我尝试创建视图时,我得到一个错误:

无法架构绑定视图“vw_transaction”,因为名称为“entity_event” 对架构绑定无效。

我正在(尝试)使用以下方法创建视图:

CREATE VIEW vw_transaction WITH SCHEMABINDING AS
    Select ee.id as entity_event_id,
        ....

这个错误有什么原因吗?看起来它是一个保留字,因为错误提到了一个“名称”,而不是一个列。 Entity_event 是我的主表的名称。

【问题讨论】:

    标签: sql-server view


    【解决方案1】:

    虽然问题很老,但今天我也遇到了同样的问题。

    我的问题得到解决,只需删除数据库名称即可解决问题。

    select [..] from [Database].schema_name.table_name //giving error
    
    select [..] from schema_name.table_name //removing Database fixed the error.
    

    希望对某人有所帮助。

    【讨论】:

      【解决方案2】:

      如果您的商店和我的一样,并且每个数据库仅包含具有默认架构的表,则只需添加

          [dbo].
      

      在每个表名的前面。

      【讨论】:

        【解决方案3】:

        我通过在所有表引用前添加架构名称来解决此问题:

        select [..] from schema_name.table_name
        

        【讨论】:

        • 是的,它奏效了。但是,对这种独特的行为感到震惊。在这种情况下,即使只有表名的 select 语句也不应该工作。
        猜你喜欢
        • 1970-01-01
        • 2011-03-19
        • 2012-01-20
        • 1970-01-01
        • 2012-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-07
        相关资源
        最近更新 更多