Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 15h51   #1
Membre régulier
 
Inscription : mars 2008
Messages : 80
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2008
Messages : 80
Points : 84
Points : 84
Par défaut comment se connecter a un autre serveur sql server depuis sql server

bonjour,

je travail avec sql server 2005 , et je développe une procédure stockée dans la quelle je souhaiterai , faire une insertion vers une table d'une base existant sur le meme serveur, et apres je souhaiterai effectuer la meme operation vers une autre base de données situé dans un autre serveur sql serveur !!!

est ce que c'est possible de se connecter au 2eme serveur a partir du premier , par code avec ma procédure stockée ???


et merci pour vos réponse
sou_rif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2008, 21h02   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
il faut commencer par créer un serveur lié à l'aide des procédures :
sp_addlinkedserver
et
sp_addlinkedsrvlogin

Après, faites vos requêtes avec NomServeur.NomBase.Schema.Table.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 12h32   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 36
Points : 13
Points : 13
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- creer le lien vers une autre base de données -pour execution ProcStock
EXEC sp_addlinkedserver @server='aliasServerDistant',
	@srvproduct='',
	@provider='sqloledb',
	@datasrc='nom.du.serveur.toto.net' --the data source
 
-- ajouter l'option RPC (cf propriétés du Serveur lié créé (objet serveur|Serveurs liés))
EXEC master.dbo.sp_serveroption @server=N'aliasServerDistant', @optname=N'rpc out', @optvalue=N'true'
GO
 
--To verify if the command is executed correctly, run query 
--select * from sys.servers where name='aliasServerDistant';
 
 
-- définition du user/login pour se connecter
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'aliasServerDistant',@useself=N'False',@locallogin=NULL,@rmtuser=N'login',@rmtpassword='pass'
go
-- pour vérifier la connexion :
--select * from aliasServerDistant.master.dbo.sysdatabases
 
 
exec aliasServerDistant.nomBase.nomProcStock
cyrille_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2008, 11h00   #4
Membre régulier
 
Inscription : mars 2008
Messages : 80
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mars 2008
Messages : 80
Points : 84
Points : 84
Merci pour vos reponses !

J'ai trouvé un autre moyen de le faire ,mais je ne sais pas c'est quoi la difference entre ma méthode et celle postée par Cyrille !!?

voila comment j'ai procédé :

SELECT *
FROM OPENDATASOURCE('SQLNCLI','Data Source= (IP);User ID= (Login);Password= (Mot de pass)').BaseTest.dbo.matable

avec :
IP: l'adresse IP du serveur distant.
Login : c le logine de connexion au serveur distant.
Mot de pass : mot de pass pou acceder au serveur distant.
BaseTest : c'est la base concernée sur le serveur distant.
matable : la table concernée.

Bien évidement, avant de faire tous ca ,il faut aller sur le serveur distant et activer : Enable OPENROWSET and OPENDATASOURCE support.

On the Start menu, point to All Programs, Microsoft SQL Server 2005, Configuration Tools, and then click SQL Server Surface Area Configuration.
Après, il faut cliquer sur le deuxième outil: Surface Area Configuration for Features.
Ensuite, il faut coucher la case : Enable OPENROWSET and OPENDATASOURCE support.
Apply== OK.

je testé cette demarche et ca marche trés bien , et vous pouvez meme executer le procedures stockées qui se trouvent sur le serveur distant.
sou_rif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2008, 11h12   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
Oui, mais : peu performante et trou de sécurité !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2008, 17h33   #6
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 26
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 26
Points : 25
Points : 25
Bonjour,

J'ai affaire à un lot SSIS (ainsi qu'une proc stock autonome) lancé depuis un serveur A.
Il récupère des données d'échanges dans un serveur B, pour les injecter dans une base du serveur A.

Qu'est-il possible de faire concrètement, à part du serveur lié ou du OpenDataSource ?
Quelle est la méthode la plus rapide ?
Quelle est la méthode la moins insécurisée ?

Merci de vos conseils.
echtelion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h56.


 
 
 
 
Partenaires

Hébergement Web