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 15/02/2011, 14h49   #1
Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 43
Points : 43
Par défaut DELETE via des synonymes et des serveurs liés

Bonjour,
j'ai un un soucis sur de la suppression d'informations via des serveurs liés, et je pense que c'est un soucis de configuration.
La requête en question est la suivante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
SET XACT_ABORT ON
 
/****************
debut transaction
*****************/
begin tran t_siteContact
 
	/***********
	  maj site
	***********/
	DELETE FROM Site
	WHERE ID NOT IN (SELECT ID FROM vue_site);
        IF @@error<>0
		SELECT @message=@message+'site mal supprime';
IF (@message='')
	begin
 
	--print('tran commit');
 
	commit tran t_siteContact 
	SELECT 1 AS result;
 
	end
else
	begin
 
	--print('tran rollback');
 
	rollback tran t_siteContact
	SELECT NULL AS result;
 
	end
 
SET XACT_ABORT OFF
Elle se situe dans un procédure stockée, dans une transaction, "Site" est un synonyme de la table sur mon serveur lié "TEST", "vue_site" est une vue.

En local sur mon SQL Server 2005, tout se passe correctement, il n'y a aucun soucis. Mais dès que je veux la lancer sur le serveur de production j'ai une erreur qui apparait :
Code :
1
2
3
Le fournisseur OLE DB "SQLNCLI" du serveur lié "TEST" a retourné le message "Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible. Aucun travail n'a été effectué.".
Msg*7202, Niveau*11, État*2, Ligne*1
Impossible de trouver le serveur 'LOCALHOST\SQLEXPRESS' dans sysservers. Vérifiez que le nom du serveur correct a été spécifié. Si nécessaire, exécutez la procédure stockée sp_addlinkedserver pour ajouter ce serveur à sysservers.
Là ou je me dis que c'est un problème de configuration, c'est que dans d'autres DELETE sur d'autres synonymes, j'ai la même erreur sur le serveur de prod, et en local tout se passe bien.
Je précise que les liaisons sont bonnes entre les serveurs liés, mais select et update fonctionnent très bien en local et sur le serveur de prod (select * from Site marche par exemple)
Merci de votre aide.
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h22   #2
Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 43
Points : 43
J'ai suivi ce post :
http://social.msdn.microsoft.com/for...-1b26cb504f77/

J'ai essayé de faire :
select @@servername

Et la réponse est que je récupère est :
NULL

Je pense qu'il y a un soucis...
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 15h57   #3
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Remplace LOCALHOST par le nom de la machine dans la définition de ton linked server.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h05   #4
Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 43
Points : 43
Bonjour,
merci de ton aide, j'ai remplacé par le nom de la machine, le message est exactement le même sauf que au lieu de LOCALHOST j'ai le nom de ma machine.
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h35   #5
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Est-ce que ton linked server s'appelle bien : LOCALHOST\SQLEXPRESS ?
Est-ce que ton linked server est bien configuré? L'as-tu testé ?
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h51   #6
Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 43
Points : 43
Oui, les serveurs liés fonctionnent bien.
Aucun soucis de ce côté là, je peux faire des select avec des synonymes pointant sur des tables du serveur lié.
De plus, j'utilise cette requête à un moment très précis, sinon le reste du temps tout est OK, mais requête passe bien (ce ne sont pas des delete).
Et en local tout passe bien.
Il y a peut être une configuration spéciale pour les requêtes DELETE ?
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 09h52   #7
Membre du Club
 
Inscription : mai 2006
Messages : 175
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 175
Points : 43
Points : 43
Bon, j'ai trouvé le solution, il s'agissait du deuxième message que j'ai mis, la variable @@servername était nulle.
Voici ce que nous avons fait :
Code :
1
2
sp_addserver <new_name>, LOCAL
GO
Et hop, mon delete passe très bien après.
Marty000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h00.


 
 
 
 
Partenaires

Hébergement Web