加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 阻止SQL Server Management Studio添加ANSI_NULLS

发布时间:2020-12-12 06:38:44 所属栏目:MsSql教程 来源:网络整理
导读:当我右键单击/修改时,如何阻止SQL Management Studio(10.50.2500.0)将其添加到每个存储过程的开头? SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO 这些设置都不适合我. ANSI_NULLS ON和QUOTED_IDENTIFIER ON在我的所有服务器,数据库和连接上设置.除此之外,
当我右键单击/修改时,如何阻止SQL Management Studio(10.50.2500.0)将其添加到每个存储过程的开头?
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

这些设置都不适合我. ANSI_NULLS ON和QUOTED_IDENTIFIER ON在我的所有服务器,数据库和连接上设置.除此之外,我从不使用双引号(我使用括号作为保留字)和所有可空字段我在需要时正确使用IS NULL.

我每次编辑程序时都会删除这些设置.我的所有程序都已正确设置,并且在我的环境中永远不会改变.经核实:

SELECT uses_ansi_nulls,uses_quoted_identifier
FROM sys.sql_modules
WHERE object_id = object_id( 'proc_name' )

解决方法

不确定这是一个答案还是一个无用的答案,但正如Damien_The_Unbeliever建议你绝对不希望SSMS停止编写这些行的脚本.因为它们位于sql_modules表中,所以它们与SQL代码本身一起构成了存储过程定义的组成部分.因此,它们不能像SQL代码那样被“关闭”.

如果从具有与创建/定义存储过程时使用的ANSI_NULLS选项值不同的连接创建/更改存储过程,则永久更改该存储过程的行为!

正是由于这个原因,SSMS(以及任何一半体面的SQL对象脚本工具)将始终输出这些行 – 因为如果删除它们或更改它们,您将更改存储过程的定义(删除它们,特别是,不好)因为它意味着存储过程的行为,取决于它发布的连接,可能会有所不同).

快速谷歌搜索“ANSI_NULLS QUOTED_IDENTIFIER存储过程”,最高结果是以下文章似乎解释了选项及其影响,非常清楚:http://ranjithk.com/2010/01/10/understanding-set-quoted_identifier-onoff/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读