SET ANSI_DEFAULTS (Transact-SQL)

Contrôle un groupe de paramètres SQL Server qui spécifie, de manière collective, certains comportements conformes à la norme ISO.

Icône Lien de rubriqueConventions de syntaxe de Transact-SQL

Syntaxe

SET ANSI_DEFAULTS { ON | OFF }

Notes

SET ANSI_DEFAULTS est un paramètre côté serveur que le client ne modifie pas. Le client gère ses propres paramètres. Par défaut, ces paramètres sont l'inverse du paramètre serveur. Les utilisateurs ne doivent pas modifier le paramètre serveur. Pour modifier le comportement du client, les utilisateurs doivent recourir à SQL_COPT_SS_PRESERVE_CURSORS. Pour plus d'informations, consultez SQLGetConnectAttr.

Lorsque cette option est activée (ON), elle active les paramètres ISO suivants :

SET ANSI_NULLS

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_NULL_DFLT_ON

SET IMPLICIT_TRANSACTIONS

SET ANSI_PADDING

SET QUOTED_IDENTIFIER

SET ANSI_WARNINGS

 

Ensemble, ces options SET ISO définissent l'environnement de traitement des requêtes pour la durée de la session de travail de l'utilisateur, de l'exécution d'un déclencheur ou d'une procédure stockée. Toutefois, ces options SET ne contiennent pas toutes les options requises pour se conformer à la norme ISO.

Lorsque vous travaillez avec des index sur des colonnes calculées et des vues indexées, quatre options par défaut (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS et QUOTED_IDENTIFIER) doivent être activées (valeur ON). Ces options par défaut font partie des sept options SET qui doivent avoir les valeurs requises lors de la création et de la modification des index sur des colonnes calculées et vues indexées. Les autres options SET sont ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) et NUMERIC_ROUNDABORT (OFF). Pour plus d'informations sur les valeurs requises des options SET dans des vues indexées et index de colonnes calculées, voir « Remarques sur l'utilisation de l'instruction SET » dans la rubrique SET (Transact-SQL).

Le pilote ODBC SQL Server Native Client et le fournisseur OLE DB SQL Server Native Client pour SQL Server affectent automatiquement la valeur ON à ANSI_DEFAULTS lors de la connexion. Le pilote et le fournisseur désactivent ensuite CURSOR_CLOSE_ON_COMMIT et IMPLICIT_TRANSACTIONS. La désactivation de SET CURSOR_CLOSE_ON_COMMIT et SET IMPLICIT_TRANSACTIONS peut être configurée dans des sources de données ou des attributs de connexion ODBC, ou encore dans les propriétés de connexion OLE DB définies dans l'application avant la connexion à SQL Server. Dans le cas d'applications DB-Library, SET ANSI_DEFAULTS prend par défaut la valeur OFF.

Lorsque l'instruction SET ANSI_DEFAULTS est émise, la valeur de SET QUOTED_IDENTIFIER est définie au moment de l'analyse, et les options suivantes sont définies lors de l'exécution :

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

Autorisations

Nécessite l'appartenance en tant que membre au rôle public.

Exemple

L'exemple suivant définit SET ANSI_DEFAULTS ON et utilise l'instruction DBCC USEROPTIONS pour afficher les paramètres affectés.

-- SET ANSI_DEFAULTS ON.
SET ANSI_DEFAULTS ON
GO
-- Display the current settings.
DBCC USEROPTIONS
GO
-- SET ANSI_DEFAULTS OFF.
SET ANSI_DEFAULTS OFF
GO