2009-10-26 76 views
0

我正在使用腳本重建索引,該腳本根據預定義的填充因子重組或重建索引。tsql-設置選項

它是基於SQL 2000

我有我的劇本以下SET選項:

SET ANSI_WARNINGS OFF 
SET ANSI_NULLS ON 
SET QUOTED_IDENTIFIER ON 

我收到以下錯誤:

DBCC失敗,因爲以下的SET選項不正確的設置:'ANSI_WARNINGS,ARITHABORT'

那麼,它是否告訴我,我應該關閉ANSI_WARNINGS幷包括ARTHABORT?

我對此感到困惑。有什麼建議?

回答

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年都能正常工作,但值得一試。

+0

是的,我使用米歇爾的(SQLFool)腳本。謝謝 – Manjot 2009-10-27 00:56:41

1

SET ANSI_NULLS爲SQL Server 2000(然而,同樣適用於更高版本):

Note: ANSI_NULLS is one of seven SET options that must be set to required values when dealing with indexes on computed columns or indexed views. The options ANSI_PADDING , ANSI_WARNINGS , ARITHABORT , QUOTED_IDENTIFIER , and CONCAT_NULL_YIELDS_NULL also must be set to ON, while NUMERIC_ROUNDABORT must be set to OFF.

所以,既要對

+0

非常感謝。這是否意味着我也應該包括其他人?像concat ....等 – Manjot 2009-10-27 00:57:35

+0

@manjot:他們應該是默認的。我從來沒有設定他們這些天...... – gbn 2009-10-27 05:13:42