【发布时间】:2015-02-01 12:15:33
【问题描述】:
我正在开发一个 SQL 视图,它从一个视图和一个 SQL 表 LastTrade 中检索数据,我使用网页将数据插入到表 LastTrade 中,当我插入一行时,我希望更新我的 SQL 视图。
我的看法如下
CREATE VIEW [dbo].[CanadianCrudes]
AS
SELECT a.Id,
a.Product,
a.Grade,
a.Term,
a.Pipeline,
a.Location,
a.[Index],
a.bidvolume,
a.Bidcp,
a.Bid,
a.Offer,
a.offercp,
a.offervolume,
a.TermID,
a.ProductID,
a.GradeID,
a.Locked,
a.Hold,
a.offercpid,
a.bidcpid,
a.idbid,
a.[sequence],
CASE
WHEN ROW_NUMBER()
OVER (
PARTITION BY a.ProductID, a.GradeID, a.TermID, a.Pipeline, a.[Index]
ORDER BY a.Bid DESC, a.Offer) = 1 THEN b.LastTradeValue
ELSE NULL
END AS LastTradeValue
FROM CanadianCrudesRaw AS a
LEFT JOIN (SELECT Product,
Grade,
Term,
Pipeline,
[Index],
MIN(LastTradeValue) LastTradeValue
FROM LastTrades
GROUP BY Product,
Grade,
Term,
Pipeline,
[Index]) AS b
ON b.Product = a.Product
AND b.Grade = a.Grade
AND b.Term = a.Term
AND ISNULL(b.Pipeline, '00') = ISNULL(a.Pipeline, '00')
AND ISNULL(b.[Index], '00') = ISNULL(a.[Index], '00')
如何实现刷新视图以获取插入数据的触发器?
【问题讨论】:
-
不需要触发器,伙计 - 只需从视图中选择,它就会提取当前表中的任何数据。
-
这个问题似乎是题外话,因为它是关于更新视图,这实际上不是一件事。
标签: sql-server triggers sql-view