2014-01-16 5 views
0

У меня есть этот вид, хотел бы знать, как сделать «уникальный вид индекса»кластерного индекса Просмотр

ALTER VIEW vwCF 
as 
SELECT 
cf.CashFlowID 
,ftt.FTSName 
,cf.FTSTypeID 
,ftt.SortOrder AS ftsSortOrder 
,cf.SecurityTypeID 
,st.SecurityTypeName 
,st.SortOrder AS stSortOrder 
,cf.IssuanceDate 
,cf.Issuance 
,cf.Principal 
,cf.Interest 
,cf.FlowAmounts 
,cf.Net 
FROM dbo.CashFlow AS cf 
INNER JOIN dbo.FinancialTimesType AS ftt ON cf.FTSTypeID = ftt.FTSTypeID 
INNER JOIN dbo.SecurityType AS st ON cf.SecurityTypeID = st.SecurityTypeID 
Go 

Как сделать создать уникальный вид индекса и идти отсюда? Спасибо

+0

Если БД SQL SERVER Check [это] (http://stackoverflow.com/questions/8506487/cannot-create-index-on-view -view-table-name-because-the-view-is-not-schema-bou) и [this] (http://stackoverflow.com/questions/9199418/sql-server-indexed-views). – user2989408

ответ

0

Предполагая, что это сервер sql, вы можете использовать приведенный ниже код. Вам нужно будет заменить поле [id] внизу полями, которые вы хотите использовать.

DROP VIEW vwCF 
GO 
CREATE VIEW vwCF WITH SCHEMABINDING 
AS 
cf.CashFlowID 
,ftt.FTSName 
,cf.FTSTypeID 
,ftt.SortOrder AS ftsSortOrder 
,cf.SecurityTypeID 
,st.SecurityTypeName 
,st.SortOrder AS stSortOrder 
,cf.IssuanceDate 
,cf.Issuance 
,cf.Principal 
,cf.Interest 
,cf.FlowAmounts 
,cf.Net 
FROM dbo.CashFlow AS cf 
INNER JOIN dbo.FinancialTimesType AS ftt 
    ON cf.FTSTypeID = ftt.FTSTypeID 
INNER JOIN dbo.SecurityType AS st 
    ON cf.SecurityTypeID = st.SecurityTypeID; 
CREATE UNIQUE CLUSTERED INDEX idx_vwCf ON vwCF ([id field]); 

[Подробнее индексированных просмотров]: http://msdn.microsoft.com/en-us/library/ms191432.aspx

+0

Получение двух ошибок: Msg 111, уровень 15, состояние 1, строка 2 «CREATE VIEW» должен быть первым оператором в пакете запросов. Msg 319, Level 15, State 1, Line 2 Неверный синтаксис рядом с ключевым словом 'with'. Если это утверждение является общим табличным выражением .... и т. Д. – user3018092

+0

Я забыл инструкцию «GO» после Drop View. Я отредактировал свой ответ. – RubberDuck

+0

Пожалуйста, отметьте правильный ответ, если это решит вашу проблему. – RubberDuck

Смежные вопросы