sql - 检查 SQL Server 中的视图
问题描述
在 PostgreSQL 中,我们有一个“WITH LOCAL CHECK OPTION”语句来强制执行在 WHERE 子句中实现的检查。
例如,
CREATE VIEW HeavyOrders AS
SELECT *
FROM Orders
WHERE Weight > 100
WITH LOCAL CHECK OPTION;
现在,如果我们尝试在其中插入一个 raw ,Weight < 100
我们将得到一个错误:
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
推荐阅读
- javascript - django-js-routes 解析器找不到 url
- c# - Dotnet 5.0 数据保护(到 Azure Vault 的持久密钥)解包密钥随机失败:“[未知] 验证令牌时出错:'S2S12086'”
- python - 如何检查列是否存在
- laravel - Laravel 8 - 我正在使用多输入文件,无法将多个图像存储在不同的行(DB)
- css - 使尺寸适合屏幕的高度
- sql - 如何进行高级 PIVOT
- flutter - 在 Flutter 中将 ieee754 半精度字节转换为双精度,反之亦然
- mysql - 当某些数据是有条件的时,如何从 Django 中的两个表中查询数据
- svg - 单击或鼠标悬停时缩放整个 SVG 组的 SVG 元素
- python - Pandas - Select values depending on a value in a DataFrame made of a deeply nested dictionary