关于sql server:查询在周末/每周一天内自动更改(MS SQL)

query changing automatically on weekend / one day per week (MS SQL)

我在另一个数据库的表A上使用VIEW,以便将其插入/更新到我的表B中
该视图具有过滤新行以减少网络流量的条件:

1
2
SELECT ... FROM A
WHERE  new_records = 1

基于该视图,我有一个每天每小时运行一次的存储过程。

我想每周一次通过查询来验证我的表B,该查询使用表A中的所有记录

我想将视图更改为以下内容:

1
2
SELECT ... FROM A
-- WHERE new_records = 1

我想知道有一份能改变我观点的工作。但是我发现我无法在存储过程中执行ALTER VIEW。

是否可以包含类似

的内容

1
2
3
 IF today = Sunday THEN Do NOT USE WHERE
 ELSE
 ...WHERE


我将其实现为2个视图-第一个选择所有视图,第二个选择从第一个视图带有附加的new_records = 1过滤器。

您可以在单个视图中添加要询问的逻辑:

1
WHERE datename(DW,GETDATE()) = 'Sunday' OR new_record=1

但是我真的不喜欢编码视图在特定日期更改行为的概念,当您要进行临时验证时会发生什么?你会被卡住。

该proc每小时调用一次,但是您提到要每周检查一次,如果是单个视图,则在周日谓词上接听每小时呼叫时,您将在周日将其运行为24次检查。

最后说明-如果您采用了变更视图方法,则必须为执行帐户提供其他特权,而这些特权否则可以避免。


怎么样
where new_records=1 or datepart(weekday,getdate())=7