Com crear a SQL Server una Vista INNER JOIN amb taules de diferents Bases de Dades
Per crear la Vista treballarem amb els següent exemple:
- Base de dades bdentorn, que conté la taula dbo.Tercers amb dades de persones i empreses
- Base de dades bdgestió, que conté les taules dbo.clients, dbo.proveidors, dbo.FacturesClients i dbo.FacturesProveidors
A les taules dbo.clients i dbo.proveidors no hi trobreu les adreces i poblacions d'aquests ja que aquestes dades es troben en la taula dbo.Tercers, la qual està en una base de dades diferent ( bdentorn ), però que es poden enllaçar pel camp comú NifTercer mitjançant una Vista.
A nosaltres ens ha interessat posar les adreces i poblacions en la taula dbo.Tercers ja que una mateixa empresa o persona, pot ser a la vegada client i proveïdor. D'aquesta manera, si canvia d'adreça només haurem de modificar-ho a la taula dbo.Tercers i no afectarà a les taules dbo.clients i dbo.proveidors.
El disseny de les taules dbo.Tercers i dbo.Clients és el següent:
Per combinar les dades de les taules dbo.Tercers i dbo.Clients necessitem crear una Vista i executar-la.
Per fer això, utilitzant el Microsoft SQL Server Management Studio, obrim la pantalla nova consulta, trobant-nos dins la base de dades bdgestio, i escribim la instrucció següent manualment, la qual crea la Vista dins d'aquesta, i té present en quina base de dades es troba cada taula.
CREATE VIEW FitxaClient AS SELECT bdgestio.dbo.clients.IdClient, bdgestio.dbo.clients.IdEmpresa, bdgestio.dbo.clients.NifTercer, bdgestio.dbo.clients.TipusDescompte, bdentorn.dbo.Tercers.Nom, bdentorn.dbo.Tercers.Direccio, bdentorn.dbo.Tercers.CodiPostal, bdentorn.dbo.Tercers.Poblacio FROM bdgestio.dbo.clients INNER JOIN bdentorn.dbo.Tercers ON bdgestio.dbo.clients.NifTercer = bdentorn.dbo.Tercers.NifTercer
Com que estem creant la vista desde la base de dades bdgestio podriem haver prescindit de la referència a bdgestio per a la taula dbo.clients ja que està dins d'aquesta. Així, la instrucció seria més curta i quedaria de la següent manera:
CREATE VIEW FitxaClient AS SELECT dbo.clients.IdClient, dbo.clients.IdEmpresa, dbo.clients.NifTercer, dbo.clients.TipusDescompte, bdentorn.dbo.Tercers.Nom, bdentorn.dbo.Tercers.Direccio, bdentorn.dbo.Tercers.CodiPostal, bdentorn.dbo.Tercers.Poblacio FROM dbo.clients INNER JOIN bdentorn.dbo.Tercers ON dbo.clients.NifTercer = bdentorn.dbo.Tercers.NifTercer
El procés que hem seguit per crear la Vista, utilitzant el Microsoft SQL Server Management Studio, és el següent:
Si mirem la Vista en modo diseño veurem com s'han combinat les taules:
MOLT IMPORTANT!!!
Aquest mètode només es podrà fer servir si volem combinar taules de diferents bases de dades però que pertanyin a la mateixa instància.
Comentaris
Publica un comentari a l'entrada