Utilisation d'options dans SQL Server

MicrosoftSQL Server propose des options qui affectent le résultat et les performances des instructions SQL. Vous pouvez définir ces options des manières suivantes :

  • Pour définir des options de configuration à l'échelle de l'instance, utilisez la procédure stockée sp_configure.

  • Pour définir des options au niveau de la base de données, utilisez l'instruction Options ALTER DATABASE SET.

  • Pour définir le niveau de compatibilité de la base de données, utilisez l'instruction Niveau de compatibilité ALTER DATABASE.

  • Pour définir des options au niveau du traitement (options SET), utilisez les instructions SET, notamment SET ANSI_PADDING et SET ANSI_NULLS.

    [!REMARQUE]

    Les options au niveau du traitement sont dénommées options au niveau de la connexion dans les versions antérieures de SQL Server et dans les connexions qui ont désactivé MARS (Multiple Active Result Sets).

  • Pour spécifier les options au niveau de l'instruction, telles que les indicateurs de requête, de table et de jointure, utilisez les instructions Transact-SQL individuelles. Pour plus d'informations, consultez Indicateurs (Transact-SQL).

Les applications ODBC peuvent spécifier des options de connexion qui contrôlent certaines des options ANSI SET. Le fournisseur OLE DB de SQL Server Native Client pour SQL Server et le pilote ODBC de SQL Server Native Client définissent plusieurs options SET par défaut.

Vous devez éviter de modifier les options SET et de les paramétrer à l'aide des instructions SET. Il est plutôt recommandé de définir les options SET au niveau de la connexion, via les propriétés de connexion d'ODBC ou d'OLE DB. D'une autre manière, vous pouvez modifier les paramètres des options SET à l'aide de la procédure stockée sp_configure.

sp_configure contient l'option user options. Elle vous permet de modifier les valeurs par défaut de plusieurs options SET. user options est une option SET, même si elle peut apparaître comme une option d'instance.

Hiérarchie des options

Quand une option est prise en charge à plusieurs niveaux, la hiérarchie suivante s'établit :

  1. Une option de base de données prévaut sur une option d'instance.

  2. Une option SET prévaut sur une option de base de données.

  3. Un indicateur prévaut sur une option SET.

[!REMARQUE]

Les options SET définies dans un traitement SQL dynamique ont uniquement un effet sur l'étendue de ce traitement.

[!REMARQUE]

Les options SET, telles que QUOTED_IDENTIFIER et ANSI_NULLS, sont persistantes dans la définition des procédures stockées et de ce fait ont priorité sur les autres valeurs explicitement définies pour elles.