【发布时间】:2019-04-16 13:29:46
【问题描述】:
我有大约 100 个关闭 ansi_nulls 的存储过程,我正在尝试将其设置为 ON。一种方法是我可以转到每个存储过程并设置属性>选项> ansi_nulls ON,也可以使用 ansi_nulls ON 修改它们中的每一个并编译它。但是对于数百个 SP 来说,这是非常耗时的。
我想有一种方法,我可以编写一个脚本来修改它们,打开 ansi_nulls 并在同一个脚本中执行它而不接触任何系统表。 好吧,我可以使用 sys 表来查询 SP 以列出我需要修改的它们。
感谢您的帮助,在此先感谢。
【问题讨论】:
-
幸运的是,您不能批量执行此操作。现实情况是,您需要评估每个过程以确保在您打开 ANSI_NULLS 时逻辑正常。不确定您打算如何更改它,您无法在对象资源管理器中更改该属性。也不确定您打算如何使用 sys.tables 来告诉您需要更改哪些程序。
-
同意肖恩。您确实需要检查每个存储过程并查看其逻辑是否依赖于关闭 ANSI_NULLs。这并不是你可以自动化的东西,甚至对于人类来说也很难确定——你所知道的是,围绕空值的一些行为可能会改变,但可能没有记录在所有情况下如何处理空值应该。
-
你为什么不想利用系统表来实现这一点?
标签: sql sql-server