gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:32:25 34 4
gpt4 key购买 nike

当我右键单击/修改时,如何防止 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_Un believeer 所建议的那样您绝对不希望 SSMS 停止编写这些行的脚本。因为它们位于 sql_modules 表中,所以它们与 SQL 代码本身一起构成存储过程定义的组成部分。因此它们不能像 SQL 代码一样被“关闭”。

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

正是由于这个原因,SSMS(以及任何半像样的 SQL 对象脚本工具)将总是输出这些行 - 因为如果您删除它们或更改它们,您正在更改存储过程(尤其是删除它们是不好的,因为这意味着存储过程的行为可能会有所不同,具体取决于它发布的连接)。

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

关于sql-server - 阻止 SQL Server Management Studio 添加 ANSI_NULLS 和 QUOTED_IDENTIFIER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439460/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com