tsql-设置选项

时间:2009-10-26 21:52:56

标签: sql sql-server tsql sql-server-2000

我正在使用脚本重建索引,该脚本根据预定义的填充因子重新组织或重建索引。

它是在SQl 2000上。

我的脚本中有以下SET选项:

SET ANSI_WARNINGS OFF
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON

我收到以下错误:

DBCC失败,因为以下SET选项的设置不正确:'ANSI_WARNINGS,ARITHABORT'

那么,是否告诉我应该关闭ANSI_WARNINGS并将其包含在ON?

我对此感到困惑。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我想你想拥有:

SET ANSI_WARNINGS ON;
SET ARITHABORT ON;

您可以在此处查看有关此内容的更多详细信息:

http://support.microsoft.com/kb/301292

当您转到SQL Server 2005+时,您应该使用ALTER INDEX REBUILD / REORGANIZE而不是DBCC命令。此外,强烈建议您查看SQLFool和Ola的选项,它们可以使您的重建索引和重建工作变得更加容易:http://sqlfool.com/2009/06/index-defrag-script-v30/http://ola.hallengren.com/我不记得其中任何一个是否适用于2000但值得检查进行。

答案 1 :(得分:1)

SET ANSI_NULLS到SQL Server 2000(但同样适用于更高版本):

  

注意:ANSI_NULLS是七个SET中的一个   必须设置为必需的选项   处理索引时的值   计算列或索引视图。该   选项ANSI_PADDINGANSI_WARNINGS,   ARITHABORTQUOTED_IDENTIFIER和。{   CONCAT_NULL_YIELDS_NULL也必须如此   设置为ON,而NUMERIC_ROUNDABORT   必须设置为OFF。

所以,两者都应该开启