Таким образом, я создаю представление SQL Server 2012 Enterprise -
CREATE VIEW [dbo].[vTest]
AS
WITH cte_LCH AS
(
select *, Rank = ROW_NUMBER() OVER (PARTITION BY ClaimId ORDER BY Id DESC)
from ClaimHistories
where Status in (1,2)
)
SELECT TOP (100) PERCENT dbo.Claims.Id AS ClaimId, cte_LCH.Id AS ClaimHistoryId,
dbo.Claims.PlanId, dbo.Providers.ChainId, dbo.Claims.MemberId
FROM dbo.TxDetails RIGHT OUTER JOIN
cte_LCH ON dbo.TxDetails.Id = cte_LCH.TxDetailId LEFT OUTER JOIN
dbo.ClaimHistoryPrices ON cte_LCH.Id = dbo.ClaimHistoryPrices.ClaimHistoryId RIGHT OUTER JOIN
dbo.Claims INNER JOIN
dbo.Providers ON dbo.Claims.ProviderId = dbo.Providers.Id INNER JOIN
dbo.Members ON dbo.Claims.MemberId = dbo.Members.Id ON cte_LCH.ClaimId = dbo.Claims.Id
WHERE cte_LCH.Rank = 1
ORDER BY ClaimId
но когда я прошу SSMS «Спроектировать» сохраненное представление, он показывает только это:
SELECT *, Rank = ROW_NUMBER() OVER (PARTITION BY ClaimId
ORDER BY Id DESC)
FROM ClaimHistories
WHERE Status IN (1, 2))
SELECT TOP (100) PERCENT dbo.Claims.Id AS ClaimId, cte_LCH.Id AS ClaimHistoryId, dbo.Claims.PlanId, dbo.Providers.ChainId, dbo.Claims.MemberId
FROM dbo.TxDetails RIGHT OUTER JOIN
cte_LCH ON dbo.TxDetails.Id = cte_LCH.TxDetailId LEFT OUTER JOIN
dbo.ClaimHistoryPrices ON cte_LCH.Id = dbo.ClaimHistoryPrices.ClaimHistoryId RIGHT OUTER JOIN
dbo.Claims INNER JOIN
dbo.Providers ON dbo.Claims.ProviderId = dbo.Providers.Id INNER JOIN
dbo.Members ON dbo.Claims.MemberId = dbo.Members.Id ON cte_LCH.ClaimId = dbo.Claims.Id
WHERE cte_LCH.Rank = 1
ORDER BY ClaimId
и не показывает предложение «WITH», поэтому на самом деле я не могу редактировать и сохранять представление, получая жалобу на неправильный синтаксис из-за дополнительного символа «)», и если я копирую, это не исполняемый код. Однако если я напишу представление для окна запроса, я получу исходный код по мере его создания. Однако представление с CTE работает нормально.
У меня вопрос - это нормально? Можно ли использовать CTE в таком представлении? Должен ли я видеть предложение WITH, если я прошу SSMS спроектировать сохраненное представление?
Спасибо, Дэйв