[SqlServer] DELETE ds une table distante : pb avec le WHERE

DELETE ds une table distante : pb avec le WHERE [SqlServer] - SQL/NoSQL - Programmation

Marsh Posté le 09-05-2006 à 09:53:42    

:hello:
 
Cette instruction

Code :
  1. DELETE [ServerName].BaseName.dbo.TableName WHERE YEAR ( Date ) = 2006


 
me génére cette erreur

Code :
  1. Serveur : Msg 7306, Niveau 16, État 2, Ligne 7
  2. Impossible d'ouvrir la table '"ServerName"."dbo"."BaseName"' du fournisseur OLE DB 'SQLOLEDB'.  Le fournisseur ne prend pas en charge la position de recherche de la ligne. Le fournisseur signale des conflits avec d'autres propriétés ou besoins.
  3. [OLE/DB provider returned 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é.]


 
alors que la même instruction sans le WHERE ( donc sans condition ) fonctionne correctement et supprime toutes les lignes de la table distante.
 
Une idée ?

Reply

Marsh Posté le 09-05-2006 à 09:53:42   

Reply

Marsh Posté le 09-05-2006 à 10:59:45    

WhyMe a écrit :

Cette instruction

Code :
  1. DELETE [ServerName].BaseName.dbo.TableName WHERE YEAR ( Date ) = 2006


me génére cette erreur  


 
essaye :
 

Code :
  1. DELETE [ServerName].BaseName.dbo.TableName WHERE DATEPART( year, Date) = 2006


 
 

Reply

Marsh Posté le 09-05-2006 à 14:49:27    

Nouveau message d'erreur :

Code :
  1. Serveur : Msg 7306, Niveau 16, État 2, Ligne 1
  2. Impossible d'ouvrir la table '"BaseName"."dbo"."TableName"' du fournisseur OLE DB 'SQLOLEDB'.  Le fournisseur ne prend pas en charge la position de recherche de la ligne. Le fournisseur signale des conflits avec d'autres propriétés ou besoins.
  3. [OLE/DB provider returned 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é.]
  4. Trace de l'erreur OLE DB [OLE/DB Provider 'SQLOLEDB' IOpenRowset::OpenRowset returned 0x80040e21:  [PROPID=DBPROP_BOOKMARKS VALUE=True STATUS=DBPROPSTATUS_CONFLICTING], [PROPID=DBPROP_COMMANDTIMEOUT VALUE=600 STATUS=DBPROPSTATUS_OK], [PROPID=Unknown PropertyID VALUE=True STATUS=DBPROPSTATUS_OK], [PROPID=DBPROP_IRowsetLocate VALUE=True STATUS=DBPROPSTATUS_CONFLICTING], [PROPID=DBPROP_IRowsetCha...

Reply

Marsh Posté le 09-05-2006 à 15:46:36    

Bon, sinon tu peux faire  
 

Code :
  1. DELETE [ServerName].BaseName.dbo.TableName WHERE Date LIKE '%2006'


 
edit: tu veux faire quoi au fait ?  
 
edit:

Code :
  1. DELETE FROM [ServerName].BaseName.dbo.TableName WHERE Date LIKE '%2006'



Message édité par PepMat le 09-05-2006 à 15:57:46
Reply

Marsh Posté le 10-05-2006 à 10:03:14    

Je veux simplement supprimer des enregistrements d'une table située sur un autre serveur que celui qui appel la procédure de suppression !

Reply

Marsh Posté le 10-05-2006 à 10:52:40    

WhyMe a écrit :

Je veux simplement supprimer des enregistrements d'une table située sur un autre serveur que celui qui appel la procédure de suppression !


 
Tu as essayé avec le FROM ?
essaye aussi DELETE * FROM
 
sinon ça peut être une histoire de droits ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed