2010-05-20 5 views
0

J'ai un Winform dont les champs doivent être renseignés par un utilisateur. Tous les champs n'appartiennent pas à une table, les données iront à la table Customer et à la table CustomerPhone, j'ai donc décidé de faire plusieurs insertions. Je vais d'abord insérer les données appropriées dans CustomerPhone, puis insérer les données de repos dans la table Customer. Est-il possible de joindre une insertion ou d'insérer une jointure?Insérer une instruction Join - (Insérer des données dans plusieurs tables) - C#/SQL/T-SQL/.NET

Si vous me montrez un échantillon approximatif, je serai reconnaissant.

Merci beaucoup

Répondre

4

à proprement parler, vous pouvez chain inserts and updates en une seule instruction avec la clause SORTIE. Par exemple, le code ci-dessous inserts à la fois en deux tableaux distincts:

create table A (
    id_a int not null identity(1,1) primary key, 
    name varchar(100)) 
create table B (
    id_b int not null identity(1,1) primary key, 
    id_a int null, 
    name_hash varbinary(16)); 

insert into A (name) 
output inserted.id_a, hashbytes('MD5', inserted.name) 
into B (id_a, name_hash) 
values ('Jonathan Doe') 

select * from A 
select * from B 
3

Si vous vous demandez si vous pouvez en quelque sorte insérer dans deux tables avec une instruction SQL: Non, vous devez faire les deux instructions d'insertion séparées.

Si vous demandez quelque chose d'autre, s'il vous plaît .. élaborer

2

Vous pouvez faire une vue qui a ces colonnes et faire un insert à la vue. Normalement, une vue qui combine plusieurs tables ne peut pas être mise à jour - Cependant, vous pouvez make an instead of trigger qui insère dans les deux tables et/ou applique votre logique métier.

Voici another link.

Cela peut être un outil très puissant si vous l'utilisez de manière organisée pour créer une couche de vues à la fois pour les sélections et les désintivations/mises à jour.

Questions connexes