MODÈLE : SET CONCAT_NULL_YIELDS_NULL peut provoquer des procédures pour compiler stockées

Traductions disponibles Traductions disponibles
Numéro d'article: 294942 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Si une procédure stockée contient l'instruction SET CONCAT_NULL_YIELDS_NULL et l'instruction modifie le paramètre actuel de CONCAT_NULL_YIELDS_NULL, la procédure est recompilée chaque exécution qu'il. Cela peut conduire à des problèmes de performances.

Cause

Recompilation est nécessaire car la modification de sa de CONCAT_NULL_YIELDS_NULL répercute le résultat et la manière dont que les commandes sont interprétés. Dans SQL Server 7.0 et SQL Server 2000, CONCAT_NULL_YIELDS_NULL est défini sur par défaut, conformément aux normes ANSI.

Si CONCAT_NULL_YIELDS_NULL DÉSACTIVÉE à la base de données au niveau ne produit pas le résultat souhaité car ODBC et OLE DB défini cette propriété sur lorsqu'ils se connectent. (Cela n'étant spécifiée par un peu dans le paquet de connexion, Générateur de profils ne pas affiche que cette propriété est en cours définie.)

Contournement

Ne définissez pas CONCAT_NULL_YIELDS_NULL à l'intérieur de la procédure stockée. La solution recommandée est d'utiliser la fonction ISNULL lors de la concaténation des chaînes.

Par exemple, une requête doit être écrit comme suit :
SELECT * FROM mytable WHERE name LIKE 'Xavier ' + ISNULL(@lastname,'') + '%'
				
plutôt que comme suit :
SELECT * FROM mytable WHERE name LIKE 'Xavier ' + @lastname + '%'
				
bien que non recommandé, une autre solution consisterait à émettre l'instruction SET CONCAT_NULL_YIELDS_NULL avant d'exécuter la procédure stockée.

Plus d'informations

Cet article adresses uniquement une raison qui stockées les procédures peut être recompilé ; pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
243586 Fichier INF: dépannage de recompilation d'une procédure stockée

Propriétés

Numéro d'article: 294942 - Dernière mise à jour: jeudi 16 octobre 2003 - Version: 3.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 7.0 Standard
Mots-clés : 
kbmt kbprb KB294942 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 294942
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com