Trasformare Tabella in Vista: Come fare con gli id e le FK?

giovedì 17 febbraio 2011 - 11.48
Tag Elenco Tags  SQL Server 2005

ignaxio Profilo | Newbie

Ciao a tutti,

Su SQL SERVER 2005
avrei la necessità di trasformare una tabella (dbo.tableA) in una vista mantenendo lo stesso nome e che abbia le stesse informazioni prelevate da un'altra fonte (dbo.TableB). L'unica cosa che non posso mantenere è l'id di dbo.TableA che è un identity automatico al momento.. questo id è tra l'altro referenziato tramite FK in parecchie altre tabelle.

Come posso fare per rendere la cosa meno dolorosa possibile cercando di mentenere un'integrità referenziale? Parliamo di una tabella che ha una milionata di righe.

lbenaglia Profilo | Guru

>Su SQL SERVER 2005
>avrei la necessità di trasformare una tabella (dbo.tableA) in
>una vista mantenendo lo stesso nome e che abbia le stesse informazioni
>prelevate da un'altra fonte (dbo.TableB). L'unica cosa che non
>posso mantenere è l'id di dbo.TableA che è un identity automatico
>al momento.. questo id è tra l'altro referenziato tramite FK
>in parecchie altre tabelle.

Ciao,

Perdonami ma temo di non aver capito. Tabelle e Viste sono oggetti distinti che non possono essere "trasformati" vicendevolmente.
Se devi definire una vista su tabella b avente lo stesso nome di tabella a, devi necessariamente eliminare tabella a se i due oggetti appartengono al medesimo schema.
Se tabella a è referenziata da altre tabelle devi prima rimuovere tutte le FK per procedere alla sua eliminazione e successivamente non potrai creare FK che referenzino la vista.

>Come posso fare per rendere la cosa meno dolorosa possibile cercando
>di mentenere un'integrità referenziale? Parliamo di una tabella
>che ha una milionata di righe.
DROP TABLE

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

ignaxio Profilo | Newbie

Beh.. il vocabolo era improprio in effetti.. per "trasformare" intendevo
drop table tableA;
Create View tableA
as
Select * from tableB

ma si possono referenziare delle colonne in una vista?

lbenaglia Profilo | Guru

>ma si possono referenziare delle colonne in una vista?
No.

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

dompa72 Profilo | Senior Member

Di solito si fa il contrario, considerando che togliendo la tabella non esiste neanche più la vista

ciao
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5