gpt4 book ai didi

sql - 是否可以在 SQL Server 中的表上应用默认过滤器?

转载 作者:行者123 更新时间:2023-12-04 13:37:15 24 4
gpt4 key购买 nike

我有一个名为 Users 的表(例如),它有 3 列(Id、Name 和 IsDeleted),IsDeleted 表示用户已删除,还是未删除?

当我在 select 语句(select * from users)下运行时,是否可以自动过滤掉 IsDeleted 等于 1 的记录?我有一个只设计为软删除的数据库,所以有很多表都有这个 IsDeleted 列。查询数据库时,我们必须添加 where 子句来过滤掉这些记录,这很烦人,尤其是在查询/连接多个表时。我想在这里问一下,是否有一些功能(如默认过滤器?)可以做到这一点。因此,只有禁用表默认过滤器时,才能查询已删除的记录。

最佳答案

实现此目的的一种简洁且易于理解的方法是使用 View 。您可以创建一个 View ,通过此标志过滤掉用户并返回所有列。

CREATE VIEW v_Users AS
SELECT * FROM Users WHERE IsDeleted = 0

然后在您的所有查询中,您可以使用此 View 而不是表格。

SELECT u.email, u.name, likes.*
FROM v_Users AS u
INNER JOIN likes ON likes.user_id = u.id

完整示例 fiddle :http://rextester.com/QDN58706

关于sql - 是否可以在 SQL Server 中的表上应用默认过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com