Cpiare dati di tabelle fra 2 server

martedì 12 gennaio 2010 - 14.52

iltammy Profilo | Newbie

Ciao a tutti, prima di aprire questo thread ho provato a fare un apiccola ricerca ma non sono riuscito a trovare nulla che fa al caso mio.
Dunque io ho questo problema. Ho la necessità di copiare parte di dati dalla tabella1 del server1 alla tabella1 del server2.
Per farlo, dal server1, ho utilizzato il seguente comando:

insert into server2..dbo.tabella1
select *
from tabella1
where campo1 = '2019' and campo2 > '7803'

l'esecuzione di questa query mi restituisce il seguente errore:

"Msg 7314, Level 16, State 1, Line 1
Il provider OLE DB "SQLNCLI" per il server collegato "server2" non include la tabella ""dbo"."tabella1"". La tabella non esiste o l'utente corrente non dispone delle autorizzazioni necessarie. "

tenete conto che l'accesso al server1 l'ho fatto come utente amministratore e che sul server1 è linkato il server2 e viceversa.

Certo del vostro aiuto, saluto cordialmente

Ah, ho dimenticato di dire che l'operazione viene eseguita fra 2 server SQL Server 2005.

lbenaglia Profilo | Guru

>Ho la necessità di copiare parte
>di dati dalla tabella1 del server1 alla tabella1 del server2.
>Per farlo, dal server1, ho utilizzato il seguente comando:
>
>insert into server2..dbo.tabella1
>select *
>from tabella1
>where campo1 = '2019' and campo2 > '7803'
>
>l'esecuzione di questa query mi restituisce il seguente errore:
>
>"Msg 7314, Level 16, State 1, Line 1
>Il provider OLE DB "SQLNCLI" per il server collegato "server2"
>non include la tabella ""dbo"."tabella1"". La tabella non esiste
>o l'utente corrente non dispone delle autorizzazioni necessarie.
>"

Ciao Antonio,

Non hai specificato qual è il database sull'istanza di destinazione.
Modifica il comando in questo modo:

insert into server2.database.dbo.tabella1 select * from tabella1 where campo1 = '2019' and campo2 > '7803';

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

iltammy Profilo | Newbie

grandissimo Lorenzo. funziona perfettamente.
io sapevo che il doppio punto sostituiva il nome del db, e quindi prendeva quello da cui sto lanciando la query.

cmq grazie 1000


Antonio

lbenaglia Profilo | Guru

>io sapevo che il doppio punto sostituiva il nome del db, e quindi
>prendeva quello da cui sto lanciando la query.
Eh, ma la query è eseguita localmente all'istanza di origine, quindi il comando viene eseguito sul db al quale ti sei connesso.
Se tu non specifichi il db di destinazione, che ne sa SQL Server dove deve copiare i dati?

>cmq grazie 1000
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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