2016-03-03 1 views
0

Je suis nouveau à la base de données SQL. Alors pardonnez-moi si je ne l'explique pas bien. C'est ici.mise à jour de la table à partir d'une vue présente dans la base de données MS SQL

J'ai vue dans ma base de données avec des colonnes suivantes et les données

firstName, lastName, employee_id 
Ria, Khanna, 15 
Paul, Dcosta, 16 
Raven, Sleeaz, 25 

Je veux créer une table de ce point de vue et ajouter des colonnes supplémentaires. Voici comment les données devraient ressembler.

firstName, lastName, employee_id, location, roles 
Ria, Khanna, 15,delhi,admin 
Paul, Dcosta, 16, new york, developer 
Raven, Sleeaz, 25, portland, HR 

Comme vous pouvez le voir, il prend la vue et les mises à jour dans la table. Je veux que le prénom, le nom de famille et l'id_utilisateur soient tirés de la vue et que je mette à jour l'emplacement et les rôles par moi-même.

EDIT

Pouvez-vous aussi mettre en évidence comment ajouter en vue de la table sans affecter les valeurs déjà créées pour l'emplacement et les rôles. la réponse fournie par @rgassvar mettra toujours des valeurs nulles à l'emplacement et aux rôles. et les valeurs précédemment ajoutées seraient perdues. droite?

+0

Quel SGBD utilisez-vous? serveur mysql <> sql. –

+0

Quel que soit le DB, ce que vous décrivez n'a pas de sens. Une vue est juste une instruction select stockée. Vous voulez avoir une table de valeurs, cela ne se met pas à jour automagiquement ou quelque chose. Pourquoi ne pas simplement ajouter ces deux nouvelles colonnes à votre vue? –

+0

@ SeanLange- la vue est créée car ces colonnes proviennent d'une base de données différente. J'obtiens les 3 colonnes de là et je mets mes propres colonnes. cela va créer une table que je veux pour mon projet. – Neeva

Répondre

0

Obtenez tout de la vue, puis ajoutez simplement deux colonnes comme nulle. Ensuite, il suffit de mettre à jour le champ d'emplacement et de rôles pour chaque rôle comme bon vous semble.

EDIT: Après la création initiale que vous pouvez faire:

INSERT INTO new_table 
SELECT *, null as location, null as roles 
FROM the_view 

ou

INSERT INTO new_table (firstName, lastName, employee_id) 
SELECT * 
FROM the_view 
+0

Merci @rgvassar. Cela fonctionnera pour la création de la première table. droite ? Supposons que je mette à jour la table et que j'ajoute à nouveau les colonnes de vue à la table sans affecter la valeur de l'emplacement et des rôles. – Neeva

+0

Pouvez-vous également surligner comment ajouter une vue à une table sans affecter les valeurs déjà créées pour l'emplacement et les rôles. Celui ci-dessus continuera à mettre des valeurs nulles à l'emplacement et les rôles. et les valeurs précédemment ajoutées seraient perdues. droite ? – Neeva

+0

Le premier exemple échouera s'il existe déjà une table. L'édition où j'ai ajouté deux autres exemples n'ajoutera que de nouvelles lignes. Les deux nouveaux champs doivent bien sûr être nullables et doivent être ajoutés avec une instruction 'ALTER TABLE' s'ils ne sont pas déjà présents. – rgvassar