检查SQL Server中的VIEW



在PostgreSQL中,我们有一个'WITH LOCAL CHECK OPTION'语句来强制执行WHERE子句中实现的检查。

例如,

CREATE VIEW HeavyOrders AS
SELECT *
FROM Orders
WHERE Weight > 100
WITH LOCAL CHECK OPTION;

现在,如果我们尝试在Weight < 100中插入raw,我们会得到一个错误:

INSERT INTO HeavyOrders(x, y, z, Weight)
VALUES('a', 'b', 'c', 80);

是否有办法在VIEW上强制执行这样的检查?

视图可以在SQL Server WITH CHECK OPTION中创建。WITH CHECK OPTION将确保对视图执行的所有INSERT和UPDATE语句满足WHERE子句中的限制,并且视图中修改的数据在INSERT和UPDATE语句之后仍然可见。

CREATE VIEW HeavyOrders AS
SELECT *
FROM Orders
WHERE Weight > 100
WITH CHECK OPTION

最新更新