使用索引创建/操作时的默认SET语句?

时间:2011-05-02 15:38:26

标签: sql sql-server tsql sql-server-2008

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

我的问题是 - 有没有办法默认设置这些值,这样我们就不必每次打开连接时都手动设置它们?系统范围内,还是特定用户/登录?这样做会有任何缺点吗?

3 个答案:

答案 0 :(得分:2)

它们已由SSMS设定。通常由客户。我没有必要为很长的时间明确设置这些。

但是,如果需要,您可以使用sp_configure指定“user options”。

顺便说一句:我没有,也不会这样做。我建议你不要触摸和改变任何设置,除非你已经证明你需要这样做......

最终用户也不需要这些选项。只有ALTER INDEX和CREATE INDEX(在此上下文中)语句才需要它们,这些语句不是日常的最终用户命令。

答案 1 :(得分:1)

尝试sp_configure

我想这种方法的一个缺点是,如果有人稍后更改它并且您的脚本依赖于某个集合,那么脚本将会中断。

答案 2 :(得分:0)