Conséquences des options ISO

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Le standard ODBC est étroitement mis en correspondance avec la norme ISO, et les applications ODBC attendent un comportement standard d'un pilote ODBC. Pour rendre son comportement plus conforme à celui défini dans la norme ODBC, le pilote ODBC SQL Server Native Client utilise toujours toutes les options ISO disponibles dans la version de SQL Server avec laquelle il se connecte.

Lorsque le pilote ODBC SQL Server Native Client se connecte à une instance de SQL Server, le serveur détecte que le client utilise le pilote ODBC SQL Server Native Client et définit plusieurs options.

Le pilote émet ces instructions lui-même ; l'application ODBC n'émet aucune demande. La définition de ces options permet aux applications ODBC utilisant le pilote d'être plus portables parce que le comportement du serveur correspond alors à la norme ISO.

Les applications basées sur DB-Library n'activent généralement pas ces options. Les sites qui observent un comportement différent entre les clients ODBC ou DB-Library lors de l’exécution de la même instruction SQL ne doivent pas supposer que cela indique un problème avec le pilote ODBC SQL Server Native Client. Ils doivent d’abord réexécuter l’instruction dans l’environnement DB-Library avec les mêmes options SET que celles utilisées par le pilote ODBC SQL Server Native Client.

Comme les options SET peuvent être activées et désactivées à tout moment par les utilisateurs et les applications, les développeurs de procédures stockées et de déclencheurs doivent aussi veiller à tester leurs procédures et leurs déclencheurs avec les options SET répertoriées ci-dessus activées et désactivées. Cela garantit que les procédures et les déclencheurs fonctionnent correctement, quelles que soient les options activées d'une connexion donnée lors de l'appel du déclencheur. Les déclencheurs ou les procédures stockées qui requièrent un paramètre particulier pour l'une de ces options doivent émettre une instruction SET au démarrage du déclencheur ou de la procédure stockée. Cette instruction SET n'est active que pour l'exécution du déclencheur ou de la procédure stockée ; à la fin de la procédure ou du déclencheur, la configuration d'origine est restaurée.

Lorsqu’il est connecté à une instance de SQL Server, une quatrième option SET, CONCAT_NULL_YIELDS_NULL, est également activée. Le pilote ODBC SQL Server Native Client ne définit pas ces options si AnsiNPW=NO est spécifié dans la source de données ou sur SQLDriverConnect ou SQLBrowseConnect.

Comme les options ISO mentionnées précédemment, le pilote ODBC SQL Server Native Client n’active pas l’option QUOTED_IDENTIFIER si QuotedID=NO est spécifié dans la source de données ou sur SQLDriverConnect ou SQLBrowseConnect.

Pour permettre au pilote de connaître l’état actuel des options SET, les applications ODBC ne doivent pas utiliser l’instruction TRANSACT-SQL SET pour définir ces options. Elles doivent uniquement définir ces options à l'aide de la source de données ou des options de connexion. Si l'application émet des instructions SET, le pilote peut générer des instructions SQL inexactes.

Voir aussi

Instructions en cours d’exécution (ODBC)
SQLDriverConnect
SQLBrowseConnect