Eliminazione record su un server collegato.

lunedì 20 luglio 2015 - 13.28
Tag Elenco Tags  .NET 4.0  |  Windows Server 2008 R2  |  SQL Server 2008 R2

iif Profilo | Expert

Ciao a tutti,
dovrei eliminare dei record presenti su una tabella su un server collegato.
L'errore che ritorna è:

OLE DB provider "SQLNCLI10" for linked server "xxxxxxxxxx" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Msg 7202, Level 11, State 2, Line 1
Impossibile trovare il server 'xxxxxxxxxxx' in sys.servers. Verificare che sia stato specificato il nome corretto del server. Se necessario, eseguire la stored procedure sp_addlinkedserver per aggiungere il server a sys.servers.

Ho provato anche ad usare sp_addlinkedserver, ritorna il medesimo errore.

Devo settare qualcosa?
Grazie.

alx_81 Profilo | Guru

>Ciao a tutti,
ciao

>Devo settare qualcosa?
se fai una select sulla sys.servers, c'è il server che ti aspetti?
Hai impostato correttamente l'autenticazione? Potresti anche non avere accesso o diritti anche solo per vederlo.
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Ciao, riesco a vedere i record e dentro sys.server esiste il collegamento

alx_81 Profilo | Guru

>Ciao, riesco a vedere i record e dentro sys.server esiste il
>collegamento
e se provi a leggere un dato direttamente sul SQL Server management studio, riesci ad accedere? Intendo con una select con il fully qualified name.
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Le select le eseguo senza problemi e l'account ha anche i privilegi di scrittura, boh...

alx_81 Profilo | Guru

>Le select le eseguo senza problemi e l'account ha anche i privilegi
>di scrittura, boh...
se l'account che usi per le chiamate da SSMS è lo stesso dell'applicazione ed in un caso va mentre nell'altro no, potrebbe essere qualcosa di legato al nome.
Hai già indicato le parentesi quadre nel nome completo? Magari il server ha caratteri noiosi da gestire..
Ma da dove lanci il comando di delete?
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

OLE DB provider "SQLNCLI10" for linked server "MIMICM4SA00" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Msg 7202, Level 11, State 2, Line 1
Impossibile trovare il server 'MIMICM4SA00' in sys.servers. Verificare che sia stato specificato il nome corretto del server. Se necessario, eseguire la stored procedure sp_addlinkedserver per aggiungere il server a sys.servers.

Ho provato anche a dargli il nome che non trova, stesso risultato

alx_81 Profilo | Guru

da dove lanci il comando di delete?
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

dalla macchina sulla quale sono collegati i server

alx_81 Profilo | Guru

>dalla macchina sulla quale sono collegati i server
sì, ma intendo con che tool, stai lanciando da .net? da SQL Server management studio?
I due server si parlano? Hai provato a fare il telnet sulla porta?
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Si, scusa, uso SQL Server management studio.
Le select le fa tranquillamente

alx_81 Profilo | Guru

>Si, scusa, uso SQL Server management studio.
>Le select le fa tranquillamente
se fa le select e le altre cose no mi viene da pensare che sia un problema di permessi però..
sei sicuro al centro per cento che l'utente che utilizzi abbia i permessi in scrittura sull'altra istanza?
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Ti confermo che l'utente ha i permessi di lettura e scrittura.
Mi sono collegato direttamente al server con l'utenza prevista, ho cancellato un record senza problemi...

Questo l'errore:
OLE DB provider "SQLNCLI10" for linked server "10.81.138.14" returned message "Deferred prepare could not be completed.".
Msg 8180, Level 16, State 1, Line 1
Impossibile preparare le istruzioni.
Msg 7202, Level 11, State 2, Line 2
Impossibile trovare il server '10.81.138.14' in sys.servers. Verificare che sia stato specificato il nome corretto del server. Se necessario, eseguire la stored procedure sp_addlinkedserver per aggiungere il server a sys.servers.

ho provato anche ad utilizzare la sp sp_addlinkedserver, niente...

alx_81 Profilo | Guru

>Ti confermo che l'utente ha i permessi di lettura e scrittura.
>Mi sono collegato direttamente al server con l'utenza prevista,
>ho cancellato un record senza problemi...
a mio avviso c'è proprio un errore sulla chiamata.. puoi postare lo statement?
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

DELETE FROM [10.81.138.14].[DBMIMICSIC342].[dbo].[TabellaLavorazioni]
WHERE YEAR(DATACREAZIONE)=YEAR(GETDATE()) AND MONTH(DATACREAZIONE)<=(MONTH(GETDATE())-3)

Errore:
OLE DB provider "SQLNCLI10" for linked server "10.81.138.14" returned message "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Msg 7202, Level 11, State 2, Line 1
Impossibile trovare il server 'MIMICM4SA00' in sys.servers. Verificare che sia stato specificato il nome corretto del server. Se necessario, eseguire la stored procedure sp_addlinkedserver per aggiungere il server a sys.servers.


alx_81 Profilo | Guru

>DELETE FROM [10.81.138.14].[DBMIMICSIC342].[dbo].[TabellaLavorazioni]
>WHERE YEAR(DATACREAZIONE)=YEAR(GETDATE()) AND MONTH(DATACREAZIONE)<=(MONTH(GETDATE())-3)
a mio avviso c'è stato qualcosa di errato nella definizione del linked server..
tuttavia riesci a cancellare, purtroppo, con il forum, non so proprio dirti cosa possa essere.
Il fatto che le letture vadano è molto strano (e la cosa mi porta sui permessi)..
Prova a distruggerlo, ricrearlo e creare un synonym all'oggetto, invece che puntarlo direttamente. Non saprei che altro dirti.
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Ho fatto un'altra prova.
Con lo stesso statement ho eliminato dei record su un altro server collegato ed ha funzionato.
Faccio una verifica tra i due server, potrebbe essere un fattore di diversa versione?

alx_81 Profilo | Guru

>Ho fatto un'altra prova.
>Con lo stesso statement ho eliminato dei record su un altro server
>collegato ed ha funzionato.
>Faccio una verifica tra i due server, potrebbe essere un fattore
>di diversa versione?
Mi sembra strano, a meno che non siano super distanti come versioni.
Hai provato a controllare il log degli errori sul server di destinazione?
Hai provato anche a lanciare una traccia col profiler sulla destinazione?
Il DTC è attivo?

Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Come verifico se il DTC è attivo?

alx_81 Profilo | Guru

>Come verifico se il DTC è attivo?
Component Services --> Local DTC, e vedi le opzioni lì, se è abilitato..
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

Lo verifico da sql server?

alx_81 Profilo | Guru

>Lo verifico da sql server?
no devi andare sulla macchina, component services (o servizi componenti se ce l'hai in italiano) si tratta di una gestione di componenti su Windows server (o workstation)
Alessandro Alpi | SQL Server MVP | Engage IT Services s.r.l.
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com

iif Profilo | Expert

ok, domani provo... grazie.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5