如何将架构绑定添加到 SQL Server 2008 中的视图

E m*_*mad 1 sql-server indexing sql-server-2008

我正在尝试在 SQL Server 2008 数据库中创建索引。

但是当我取消注释时遇到错误WITH SCHEMABINDING

USE UNIVERSITY
GO

CREATE VIEW dbo.Major_Education_Category
WITH SCHEMABINDING
AS
   SELECT CA.CName, MA.MName
   FROM 
     (SELECT M.Major_ID MID , Major_Name MName
      FROM Major M, Registration R
      WHERE M.Major_ID = R.Major_ID) MA,
     (SELECT C.Category_ID CId, C.Category_Name CName
      FROM Education_Category C, Registration R
      WHERE C.Category_ID = R.Category_ID) CA
   GROUP BY 
      CA.CName, MA.MName

CREATE UNIQUE CLUSTERED INDEX UCI_Major_Id_By_Education_Category
ON dbo.Major_Education_Category (MName)
GO

CREATE UNIQUE CLUSTERED INDEX UCI_Category_Id_By_Major
ON dbo.Major_Education_Category  (CName)
GO
Run Code Online (Sandbox Code Playgroud)

错误:

消息 4512,级别 16,状态 3,过程 Major_Education_Category,第 6 行
无法架构绑定视图“dbo.Major_Education_Category”,因为名称“Major”对于架构绑定无效。名称必须采用两部分格式,并且对象不能引用自身。

Chr*_*s J 5

from 子句中的表需要指定为两部分{owner}.{tablename}。除非您另有所知,否则这很可能是dbo。所以尝试一下dbo.Majordbo.Registration等等。