2010-06-17 9 views
3

Je rencontre un léger problème de déplacement de données spécifiques d'un serveur exécutant SQL Server 2000 (A) et d'un autre exécutant SQL Server 2008 (B). J'écris un script selon les spécifications du client qui doit être exécuté sur A, en remplissant les tables en B avec les données. Cependant, je n'arrive pas à faire fonctionner le lien du serveur.Problèmes avec sp_addlinkedserver dans SQL Server 2000

-- Bunch of declarations here 

EXEC sp_addlinkedserver @server = @ServerName, 
      @srvproduct = @ServerProduct, 
      @provider = @ProviderString, 
      @datasrc = @RemoteHost 

-- Data migration stuff here 

EXEC sp_dropserver @ServerName 

Maintenant, si je lance le script dans son intégralité je reçois une erreur disant:

Msg 7202, niveau 11, état 2, ligne 55 N'a pas pu trouver le serveur 'remoteServer' dans sysservers . Exécutez sp_addlinkedserver pour ajouter le serveur à sysservers.

Cependant, si je souligne que la partie sp_addlinkedserver et Execute que, il n'y a pas d'erreur et je peux mettre en évidence le reste du script et l'exécuter. Qu'est-ce que j'oublie ici?

Aidez s'il vous plaît!

PS. Si backup-restore était une option, je l'aurais déjà fait.

Répondre

2

Le problème est que SQL Server essaie de valider le code avant de l'exécuter. Pour montrer cela, essayez de mettre une de vos commandes dans EXEC(). Essayez de mettre un GO après la commande sp_addlinkedserver.

+0

Cela a fonctionné, merci! – manneorama