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个视图-第一个选择所有视图,第二个选择从第一个视图带有附加的
您可以在单个视图中添加要询问的逻辑:
1 | WHERE datename(DW,GETDATE()) = 'Sunday' OR new_record=1 |
但是我真的不喜欢编码视图在特定日期更改行为的概念,当您要进行临时验证时会发生什么?你会被卡住。
该proc每小时调用一次,但是您提到要每周检查一次,如果是单个视图,则在周日谓词上接听每小时呼叫时,您将在周日将其运行为24次检查。
最后说明-如果您采用了变更视图方法,则必须为执行帐户提供其他特权,而这些特权否则可以避免。
怎么样
?