Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Vous recevez un message d'erreur lorsque vous exécutez une application, le script ou la fonctionnalité d'une installation antérieure de SQL Server qui utilise les fonctionnalités de runtime de langage commun dans SQL Server 2008 ou dans SQL Server 2008 R2: «une erreur .NET Framework s'est produite»

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: 955629
Symptômes
Après mise à niveau vers Microsoft SQL Server 2008 ou Microsoft SQL Server 2008 R2, lorsque vous exécutez une application, d'un script ou d'une fonctionnalité à partir d'une installation antérieure de Microsoft SQL Server qui utilise les fonctionnalités de runtime (CLR) de langage commun, vous recevez un message d'erreur semblable message d'erreur suivantes :
Msg 6522, niveau 16, état 1, ligne 1

Une erreur .NET Framework s'est produite pendant l'exécution de routine défini par l'utilisateur ou routine name de regroupement :

System.InvalidOperationException : l'accès aux données n'est pas autorisé dans ce contexte. Soit le contexte est une fonction ou méthode non marquée avec DataAccessKind.Read ou SystemDataAccessKind.Read, est un rappel pour obtenir des données à partir de la méthode FillRow d'une fonction table ou est une méthode de validation UDT.

System.InvalidOperationException
Par exemple, ce problème peut se produire dans les scénarios suivants.

Scénario 1

Vous utilisez une méthode qui présente les caractéristiques suivantes :
  • La méthode utilise une fonction CLR définie par l'utilisateur, une méthode de type défini par l'utilisateur (UDT) ou un agrégat défini par l'utilisateur qui effectue l'emprunt d'identité.
  • La méthode utilise un objet volumineux (LOB) en tant que paramètre.
  • La méthode n'utilise pas la propriété DataAccesKind.Read sur la méthode.

Scénario 2

Vous utilisez la méthode INIT d'une fonction table CLR qui effectue l'emprunt d'identité.

Scénario 3

Vous utilisez la méthode FillRow dans une fonction table CLR qui effectue l'emprunt d'identité.
Cause
Ce problème se produit à cause d'une modification dans les fonctionnalités du moteur de base de données dans SQL Server 2008 et dans SQL Server 2008 R2.
Contournement
Pour contourner le problème comme décrit dans les scénarios proposés dans la section "Symptômes de cet" article, appliquez l'une des méthodes suivantes.

Méthode 1: Pour contourner ce problème dans le scénario 1 et dans le scénario 2

Pour contourner ce problème, ajoutez la propriété DataAccessKind.Read à la méthode.

Méthode 2: Pour contourner ce problème dans le scénario 3

Pour contourner ce problème, procédez comme suit :
  • Supprimez l'emprunt d'identité de la méthode FillRow.
  • N'accédez pas à des ressources externes à l'aide de la méthode FillRow.
  • Accéder aux ressources externes uniquement à l'aide de la méthode INIT de la fonction table.
Références
Pour informations sur la propriété DataAccessKind.Read et autres attributs personnalisés pour les routines CLR, reportez-vous au site de le Microsoft TechNet Web suivant : Pour plus d'informations sur les modifications avec rupture dans les fonctionnalités du moteur de base de données dans SQL Server 2008, reportez-vous au site de le Microsoft TechNet Web suivant :
"SQL Server 2008 Database Engine" sqlserver2008 sqlserver2k8 sqlsvr2008 sqlsvr2k8 SQL2008RelNoteDatabaseEngine

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 955629 - Dernière mise à jour : 03/19/2009 22:27:18 - Révision : 2.1

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Workgroup

  • kbmt sql2008relnotedatabaseengine sql2008relnote kbprogramming kbautomation kberrmsg kbtshoot kbexpertiseinter kbprb KB955629 KbMtfr
Commentaires
/html>tsByTagName("head")[0].appendChild(m);