2013-03-14 4 views
0

J'ai beaucoup de serveurs liés qui contient des bases de données similaires, Maintenant, je suis invité à faire une procédure stockée pour transférer des données de la base de données d'un serveur à la base de données d'un autre serveur. mais je suis supposé donner le nom du serveur de destination, le nom du serveur source, le nom de la base de données de destination, le nom de la base de données souce en tant que paramètres au proc stocké. Je suis capable de le faire entre différentes bases de données du même serveur en utilisant SQL dynamique.Comment transférer dynamiquement des données d'un serveur à un autre ..?

SET @dynsql =N'INSERT INTO '[email protected]+N'..UIElement (UIElementID,UIElementName) 
    SELECT @LatestUIElementId,UIElementName 
    FROM '+QUOTENAME(@sourceDBname)+N'.dbo.UIElement WHERE UIElementID = @OldUIElementId' 
    EXEC sp_executesql @dynsql,N'@LatestUIElementId int',@LatestUIElementId [email protected] 

mais impossible de trouver un moyen pouvant être utilisé entre les serveurs.

+1

Ainsi, votre requête ci-dessus ne fonctionne pas lorsque vous ajoutez simplement le serveur lié à l'avant de votre nom d'objet généré dynamiquement? Si non, quelle erreur obtenez-vous? –

Répondre

0

Il me semble qu'il vous manque serveur de destination dans votre requête. De ce que je vois ci-dessus vous avez seulement la base de données de destination.

requête pour serveur de destination doit ressembler à ceci

select * from [Server].database.schema.table 
Questions connexes