Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Relazione tra due tabelle appartenenti a due database diversi...
martedì 12 maggio 2009 - 11.04
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
e.disanto
Profilo
| Junior Member
84
messaggi | Data Invio:
mar 12 mag 2009 - 11:04
Salve a tutti
,
premetto che ho provato ad utilizzare la funzione "Cerca nel sito" ma non mi è sembrato di vedere risultati che rispondessero al mio quesito, perciò espongo di seguito il mio problema...
Ho un database comune in cui sono memorizzati una serie di dati (es. Comuni, Anagrafiche, ecc.) necessari ad altri database, ed ho la necessità di relazionare le tabelle degli altri database a queste.
Ora i dubbi che mi sono venuti:
1) E' possibile fare questa operazione?
2) In caso affermativo, lato Visual Studio (DataSet Designer per l'esattezza) è gestibile la cosa ed è possibile estrapolare risultati che siano la join di queste tabelle in maniera del tutto "normale"???
Grazie in anticipo per l'aiuto ;)
Ernesto di Santo
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
mar 12 mag 2009 - 11:24
Se ho capito bene,
puoi tranquillamente usare tabelle di altri db semplicemente creando una vista che punta a quella tabella :
select *
from nomedb.dbo.nometabella
DINOXET
__________________________________________
impossible is only a word
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 12 mag 2009 - 11:29
>Salve a tutti
,
Ciao
>Ho un database comune in cui sono memorizzati una serie di dati
>(es. Comuni, Anagrafiche, ecc.) necessari ad altri database,
>ed ho la necessità di relazionare le tabelle degli altri database a queste.
Spero che stai parlando di sql server, ma credo che la cosa valga per tutti i DBMS
>Ora i dubbi che mi sono venuti:
>1) E' possibile fare questa operazione?
non è possibile fare una relazione tra due oggetti di due database diversi.
se provi, otterrai questo errore:
"Msg 1763, Level 16, State 0, Line 1
Cross-database foreign key references are not supported. Foreign key 'esterno.dbo.table_1'."
Però puoi usare i sinonimi per puntare ad oggetti esterni, facendoli "sembrare" appartenenti al tuo database di partenza.
http://msdn.microsoft.com/it-it/library/ms177544.aspx
Invece che usare la forma nomedb.nomeschema.nomeoggetto, usi il sinonimo che punta a quell'oggetto.
Con visual studio al massimo, ti puoi creare le relazioni una volta scaricati i dati in locale..
>Grazie in anticipo per l'aiuto ;)
di nulla!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
e.disanto
Profilo
| Junior Member
84
messaggi | Data Invio:
mar 12 mag 2009 - 11:50
Ho provato tutte e due le vostre risposte (ho creato sia una vosta che un sinonimo), ma in termini di performance, quale mi consigliereste?
Ovvero, quale delle due soluzioni secondo voi è migliore o più adatta? (a me serve soltanto visibilità di queste tabelle nel secondo DataBase, non ho bisogno di fare aggiornamenti ai dati)
Grazie ancora
Ernesto di Santo
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 12 mag 2009 - 12:34
>Ho provato tutte e due le vostre risposte (ho creato sia una
>vosta che un sinonimo), ma in termini di performance, quale mi
>consigliereste?
>Ovvero, quale delle due soluzioni secondo voi è migliore o più
>adatta? (a me serve soltanto visibilità di queste tabelle nel
>secondo DataBase, non ho bisogno di fare aggiornamenti ai dati)
Prestazioni medesime, il sinonimo ti astrae di più, nel senso che è stato introdotto proprio come ALIAS, uno, per evitare di scrivere tutta la forma nomedb.nomeschema.nomeoggetto e due perchè così, in caso di trasferimento di oggetto tra server e/o database, cambi le informazioni in un solo posto.
E sei sicuro che il tuo codice funzionerà sempre..
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
mar 12 mag 2009 - 12:39
Tutto dipende dalla tua infrastruttura, certo un file in locale solitamente è più veloce però lo devi aggiornare di continuo, con una vista non hai questa incombenzaSe la tabella è su un'altra macchina ci devi mettere anche la velocita di rete, e non in ultimo incidono le dimenzione della tabella.
in pratica prova.
DINOXET
__________________________________________
impossible is only a word
Torna su
Stanze Forum
Elenco Threads
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 !