2009-10-26 4 views
0

Je reconstruis des index en utilisant un script qui réorganise ou reconstruit des index selon un facteur de remplissage prédéfini.tsql- set options

Il est SQl 2000.

je les options SET suivantes dans mon script:

SET ANSI_WARNINGS OFF 
SET ANSI_NULLS ON 
SET QUOTED_IDENTIFIER ON 

Je reçois l'erreur suivante:

DBCC a échoué parce que les options SET suivantes ont paramètres incorrects: 'ANSI_WARNINGS, ARITHABORT'

Alors, est-ce qu'il me dit que je devrais désactiver ANSI_WARNINGS ET INCLURE ARTHABORT à ON?

Je suis confus avec cela. Aucun conseil?

Répondre

2

Je pense que vous voulez avoir:

SET ANSI_WARNINGS ON; 
SET ARITHABORT ON; 

Vous pouvez voir plus de détails à ce sujet ici:

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

Lorsque vous passez à SQL Server 2005+ vous devez utiliser ALTER INDEX REBUILD/REORGANIZE par opposition aux commandes DBCC. En outre, fortement suggérer que vous vérifiez les options de SQLFool et d'Ola, ils peuvent rendre vos travaux de réindexation et de reconstruction beaucoup plus faciles: http://sqlfool.com/2009/06/index-defrag-script-v30/ et http://ola.hallengren.com/ Je ne me souviens pas si l'un de ceux-ci fonctionnera sur 2000 mais vaut le détour.

+0

Oui j'utiliser le script de Michelle (SQLFool). Merci – Manjot

1

De SET ANSI_NULLS pour SQL Server 2000 (cependant, même pour les versions ultérieures):

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.

Ainsi, les deux devraient être ON

+0

Merci beaucoup. Cela signifie-t-il que je devrais en inclure d'autres aussi? comme concat .... etc – Manjot

+0

@manjot: ils devraient être par défaut. Je ne les ai jamais mis ces jours-ci ... – gbn