2010-03-18 4 views
3

J'ai un script que j'utilise pour copier des données d'une table dans une base de données vers une table dans une autre base de données sur la même instance SQL Server. Le script fonctionne très bien lorsque je suis connecté à l'instance SQL Server comme moi-même car j'ai un accès dbo aux deux bases de données. Le problème est que ce ne sera pas le cas sur SQL Server du client. Ils ont des connexions séparées pour chaque base de données (SQL Authentication Logins). Est-ce que quelqu'un sait s'il existe un moyen d'exécuter un script dans ces circonstances. Le script ferait quelque chose comme.SQL Server copie des informations de table entre les bases de données

use sourceDB 
Insert targetDB.dbo.tblTest (id, test_name) 
Select id, test_name from dbo.tblTest 

Merci

+0

Selon votre question, les bases de données sont sur le même serveur, donc les relier n'aurait aucun sens. –

Répondre

1

Vous aurez besoin de donner un des utilisateurs d'accéder à l'autre base de données. Il peut s'agir d'un accès en lecture si l'utilisateur dispose d'un accès en écriture à la base de données où se trouvent les données. Toute autre solution vous obligerait à sortir de la base de données et à y revenir, ce qui n'est pas une solution élégante et vous exposerait à plus de problèmes de données.

0

Un peu de bidouille autour et je l'ai eu fonctionnant. J'ai ajouté cette commande avant l'insertion

sp_addlinkedsrvlogin 'myDBservername',false,'db_a','db_b','db_b_123' 
Questions connexes