【问题标题】:Clustered Index View聚集索引视图
【发布时间】:2014-02-05 20:00:13
【问题描述】:

我有这个视图,想知道如何制作“唯一索引视图”

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

如何创建唯一索引视图并从这里开始?谢谢

【问题讨论】:

  • 如果数据库是 SQL SERVER 检查thisthis

标签: sql-server view indexing


【解决方案1】:

假设这是sql server,可以使用下面的代码。您需要将底部的 [id field] 替换为您要使用的字段。

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

【讨论】:

  • 出现两个错误:Msg 111,Level 15,State 1,Line 2 'CREATE VIEW' 必须是查询批处理中的第一条语句。消息 319,级别 15,状态 1,第 2 行关键字“with”附近的语法不正确。如果这个语句是一个公用表表达式......等等
  • 我忘记了 Drop View 之后的“GO”语句。我已经编辑了我的答案。
  • 如果这解决了您的问题,请标记为正确答案。
猜你喜欢
  • 2011-01-13
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 2013-08-07
  • 2013-04-12
  • 2021-01-14
  • 2011-12-16
相关资源
最近更新 更多