2013-01-07 29 views
5

Bir ana tablomuz ve birkaç küçük tablom var.Saklanan Yordam Bir tablodan diğerine aynı sütun adlarıyla veri eklemek için

  • Master Tablo C1 | C2 | C3 | C4 | C5 |
  • küçük bir tablo sahip olup C1 | C2 | C3 |

@C1 (Master tabloda C1 değerine eşit bir değere sahip olan bir değişken.

kolon adına sahip iki tablo için eşleşir. Master tablosundan değerleri ekleyen bir saklı yordam oluşturmak istiyorum (C1, C2 ve C3) daha küçük bir tabloya (C1, C2, C3).

Benim çaba:

Create proc Schema.Proc 
(@C1 int) 
AS 
BEGIN 
INSERT INTO SmallTable 
(C1, C2, C3) --- Columns of smaller table 
Values (SELECT C1, C2, C3 ---Columns of Master table 
FROM MasterTable) 
WHERE C1 = @C1 --- Where value of C1 of Master table matches the value of @C1 
END 

Lütfen yardım Eğer

+1

sen chocked neden açıklamadı. Ve, ben [tag: jQuery] etiketini kaldırıyorum – Alexander

+1

jQuery kullanarak bir çözüm için bonus puan mı sunuyorsunuz? –

+0

Hızlı yardım için teşekkürler çocuklar. Jquery etiketi için özür dilerim ... hehe gerekli değişiklikleri yapacağım ve ilk cevabı mümkün olduğunca çabuk KABUL EDERİM. Teşekkürler – 007

cevap

7

Sen INSERT INTO ... SELECT ..... sözdizimi kullanmak gerekir - hayır VALUES katılan anahtar kelime:

CREATE PROCEDURE Schema.Proc 
    (@C1 int) 
AS 
BEGIN 
    INSERT INTO SmallTable(C1, C2, C3) --- Columns of smaller table 
     SELECT C1, C2, C3 ---Columns of Master table 
     FROM MasterTable 
     WHERE C1 = @C1 --- Where value of C1 of Master table matches the value of @C1 
END 
3

Sen yakındı ederiz! C1, C2 ve C3 aynı veri türleri olduğu sürece, bu çalışmalıdır.

Create proc Schema.Proc 
(@C1 int) 
AS 
BEGIN 
INSERT INTO SmallTable 
(C1, C2, C3) --- Columns of smaller table 
SELECT C1, C2, C3 ---Columns of Master table 
FROM MasterTable 
WHERE C1 = @C1 
END 
0
CREATE OR REPLACE PROCEDURE P_INSERT(U_ID NUMBER) 
AS 
BEGIN 
INSERT INTO X(ID,NAME,SALARY)--X IS TABLE NAME 
SELECT ABC_ID,NAME,SALARY FROM ABC 
WHERE ABC_ID=U_ID;--ABC_ID IS SAME VALUE OF U_ID 
END; 
İlgili konular