CORRECTIF : Échec du transfert d'une vue contenant une fonction définie par l'utilisateur à l'aide de l'Assistant Exportation DTS, avec erreur 208

Traductions disponibles Traductions disponibles
Numéro d'article: 300272 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F300272
N° DE BOGUE : 352081 (SHILOH_BUGS)
Agrandir tout | Réduire tout

Sommaire

Symptômes

Les tentatives de transfert d'une vue à l'aide de l'Assistant Importation/Exportation DTS (Data Transformation Service) échouent dans les cas suivants :
  • La vue inclut une fonction définie par l'utilisateur.
  • Lors de la copie d'objets et de données entre des bases de données SQL Server.
Le texte suivant est un exemple du message d'erreur qui s'affiche :
Échec de la copie des objets de Microsoft SQL Server vers Microsoft SQL Server
[Microsoft][ODBC SQL Server Driver][SQL Server]Nom d'objet 'dbo.TestFunc' incorrect.
REMARQUE : " dbo.TestFunc " est le nom de la fonction définie par l'utilisateur.

Cause

La vue est créée dans la base de données de destination avant la fonction définie par l'utilisateur, qui est l'objet dépendant. Tous les objets dépendants doivent être créés en premier.

Résolution

Pour résoudre ce problème, procurez-vous le dernier Service Pack de SQL Server 2000. Pour plus d'informations, consultez l'article suivant dans la Base de connaissances Microsoft :
290211 INF : Procédures pour obtenir le dernier Service Pack de SQL Server 2000

Contournement

Transférez tous les objets dont dépend la vue en premier, puis, lorsque vous transférez la vue, n'incluez pas d'objets dépendants.

Statut

Microsoft a confirmé l'existence de ce problème dans SQL Server 2000. Ce problème a été corrigé dans le Service Pack 1 de SQL Server 2000.

Plus d'informations

Procédure pour reproduire le comportement

  1. Dans la base de données source, exécutez ce code pour créer la table, la vue et la fonction définie par l'utilisateur :
    CREATE FUNCTION TestFunc ()
    RETURNS INT AS  
    BEGIN 
              RETURN 15
    END
    go
    
    CREATE TABLE dbo.TestTable ( col1 int NULL )
    go
    
    CREATE VIEW dbo.TestView
    AS
    SELECT col1, dbo.TestFunc() AS FuncResults FROM dbo.TestTable
    go
  2. Maintenant, utilisez l'Assistant Exportation/Importation DTS pour les copier dans une autre base de données SQL Server.
  3. Sélectionnez l'option Copier les objets et les données entre les bases de données SQL Server. Conservez tous les paramètres par défaut pour les options de script. Cette procédure échoue et le message d'erreur suivant est consigné dans le fichier .log de la base de données cible :
    État du transfert : Création de vues sur la base de données de destination
    [Microsoft][ODBC SQL Server Driver][SQL Server]Nom d'objet 'dbo.TestFunc' incorrect.
Pour contourner ce problème, copiez d'abord la table dépendante, TestTable, et la fonction définie par l'utilisateur " TestFunc ". Copiez ensuite la vue en désactivant la case à cocher Inclure tous les objets dépendants.

Propriétés

Numéro d'article: 300272 - Dernière mise à jour: vendredi 7 novembre 2003 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
Mots-clés : 
kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB300272
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