0

我正在寻找一个可以在我的服务器上运行的脚本来为我的数据库中的所有表创建没有锁定的视图。谢谢!

4

1 回答 1

1

尽管我同意这是一个坏主意,但通过展示一些示例仍然可能会有所收获/学习。但是 - 是的 - 这可能是一个非常糟糕的想法,但在某些世界中这可能是有道理的。

如果这是一次性的事情,你可以做这样的事情,这将简单地为视图创建 DDL (nolock)。您只需要复制粘贴并执行。如果这需要动态生成,则需要利用更多。

关于以下内容的另一个警告——它select *在没有模式绑定的视图中使用。对这些类型的视图要格外小心,因为如果基础表结构发生变化,它们不会自动更新。除非您有其他保护措施,否则对视图中的列进行完全限定是明智且良好的做法。

select '
    create view ' + name + 'MayBeABadIdea as select * from ' + name + ' (nolock);
    go'
from sys.objects
where type = 'U'
order by name;
于 2016-06-14T02:45:25.003 回答