2013-01-07 36 views
5

मेरे पास एक मास्टर टेबल और कुछ छोटी तालिका है।एक कॉलम नाम के साथ एक तालिका से दूसरे तालिका में डेटा डालने के लिए संग्रहित प्रक्रिया

  • Master तालिका C1 | C2 | C3 | C4 | C5 |
  • एक छोटा सा टेबल है C1 | C2 | C3 |

इसके अलावा @C1 (जो Master तालिका में सी 1 के मान से मेल खाता एक मूल्य है कि एक चर।

स्तंभ नाम है दोनों टेबल के लिए मैचों। मैं एक संग्रहीत प्रक्रिया बनाना चाहता हूं जो Master तालिका (C1,से मूल्यों को सम्मिलित करता है, और C3) छोटी तालिका में (C1, C2, C3)।

मेरे प्रयास:

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 

कृपया मदद

धन्यवाद

+1

आप की व्याख्या नहीं की थी तुम क्यों chocked। और, मैं [टैग: jQuery] टैग हटा रहा हूं – Alexander

+1

क्या आप jQuery का उपयोग कर समाधान के लिए बोनस अंक की पेशकश कर रहे हैं? –

+0

त्वरित मदद के लिए धन्यवाद दोस्तों। Jquery टैग के लिए खेद है ... हे, मैं आवश्यक परिवर्तन कर दूंगा और जितनी जल्दी हो सके स्वीकार किए गए पहले उत्तर को चिह्नित करूँगा। धन्यवाद – 007

उत्तर

7

आप INSERT INTO ... SELECT ..... सिंटैक्स का उपयोग करने की आवश्यकता है - कोई VALUES कीवर्ड शामिल:

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

आप करीब थे! जब तक सी 1, सी 2 और सी 3 समान डेटा प्रकार होते हैं तो यह काम करना चाहिए।

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;