2012-05-10 46 views
10

我正在處理的這個任務的第三部分說:「根據列OrderID創建並索引名爲」dbo.Orders Qry「的現有Northwind視圖和EmployeeID「。無法在視圖上創建索引,因爲該視圖不是模式綁定錯誤1939

預計我會得到一個錯誤;然而,我的導師只告訴我們Google。我做了,但是在本週的課程或其他任何課程中都沒有計劃綁定,我發現的內容太深入瞭解以便我理解。

這是我沒有檢查框或更改設置的問題?

回答

20

聽起來像這樣描述了一個索引視圖,你可以在微軟的站點here上看到它們。微軟啓用此功能開始SQL 2005

在文本視圖定義,你只需要在CREATE VIEW語句後添加的話WITH SCHEMABINDING,例如:

CREATE VIEW dbo.MyView 
WITH SCHEMABINDING 

AS 

SELECT a, b, c 
FROM dbo.MyTable 

要添加索引,你會添加一個聲明到視圖定義類似於此:

-- Create an index on the view. 
CREATE UNIQUE CLUSTERED INDEX IDX_MyView_ClusteredIndex 
ON dbo.MyView(a, b, c) 

GO 
+0

無法架構綁定視圖'MyView',因爲名稱'MyTable'對模式綁定無效。名稱必須採用兩部分格式,而對象不能自行引用。 –

+3

添加「dbo」。在您的視圖名稱旁邊。 –

+2

「dbo」。應該在視圖正在讀取的表格旁邊。 –

1

我一直在尋找什麼是由達斯大陸發佈。這工作像一個魅力,但是,這是一個完全不同的情況。我相信上面的答案至少應該被認爲是決議,如果不是後續會很好。

+0

這對我有效: CREATE VIEW [dbo]。[PERSON_V] WITH SCHEMABINDING AS SELECT SL_LAST_NAME +'; '+ SL_FIRST_NAME AS RES_NAME,ASSIGNED_ORG,PERSON_ID,[USER_NAME] AS WINDOWS_ACCOUNT, OFFICE_BUILDING,OFFICE_ROOM,MAIL_STOP,OFFICE_PHONE,JOB_TITLE,RES_TYPE, '[email protected]' AS EMAIL_ADDR,PARENT_RSRC_ID FROM dbo.PERSON GO 創建唯一的羣集索引IX_PERSON_ID ON dbo.PERSON_V(PERSON_ID) GO –

相關問題