使用索引创建/操作时的默认 SET 语句?
Posted
技术标签:
【中文标题】使用索引创建/操作时的默认 SET 语句?【英文标题】:Default SET statements when creating/manipulating with indexes? 【发布时间】:2011-05-02 15:38:25 【问题描述】:MSDN's documentation on SET
statements 包含以下段落:
在计算列或索引视图上创建和操作索引时,SET 选项 ARITHABORT、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER、ANSI_NULLS、ANSI_PADDING 和 ANSI_WARNINGS 必须设置为 ON。 NUMERIC_ROUNDABORT 选项必须设置为 OFF。
可以这样设置这些选项:
SET ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS ON
SET NUMERIC_ROUNDABORT OFF
我的问题是——有没有办法默认设置这些值,这样我们就不必每次打开连接时都手动设置它们?是系统范围的,还是针对特定用户/登录的?这样做会有什么缺点吗?
【问题讨论】:
【参考方案1】:它们已经由 SSMS 设置。并由客户通常。我不必在很长时间时间内明确设置这些。
但是,如果需要,您可以使用sp_configure 指定“user options”。
顺便说一句:我没有也不会设置这个。我建议你不要触摸和更改任何设置,除非你证明你需要这样做......
最终用户也不需要这些选项。它们仅用于 ALTER INDEX 和 CREATE INDEX(在此上下文中)语句,它们不是日常最终用户命令。
【讨论】:
【参考方案2】:试试sp_configure
我想这种方法的一个缺点是,如果有人稍后更改它并且您的脚本依赖于某个集合,那么您的脚本将会中断。
【讨论】:
【参考方案3】:检查这可能会有所帮助: http://www.sqlservercentral.com/Forums/Topic1088175-391-1.aspx#bm1088396
【讨论】:
以上是关于使用索引创建/操作时的默认 SET 语句?的主要内容,如果未能解决你的问题,请参考以下文章