2010-05-27 21 views
11

यदि मैं किसी तालिका से किसी भी आईडी का चयन करना चाहता हूं और विदेशी मान के रूप में किसी अन्य तालिका में अपना मान डालना चाहता हूं तो मैं संग्रहीत प्रक्रिया के माध्यम से इसे कैसे करूं?संग्रहित प्रक्रियाओं में स्थानीय चर का उपयोग कैसे करें?

+0

एसक्यूएल –

+0

आप डेटाबेस कैसे एक्सेस कर रहे हैं के साथ टैग यह: ADO.NET, इकाई की रूपरेखा, एसक्यूएल को LINQ ...? क्या आप अपने एएसपी.नेट कोड, या एसक्यूएल कोड में मदद चाहते हैं? – Richard

+0

मैंने एएसपी.नेट टैग हटा दिया क्योंकि यह प्रश्न एएसपी.नेट के बारे में बिल्कुल नहीं है, लेकिन एसक्यूएल में संग्रहित प्रक्रियाओं से निपट रहा है। यह जानना उपयोगी होगा कि आप किस डेटाबेस इंजन का उपयोग कर रहे हैं। –

उत्तर

18

इसका एक उदाहरण है कि मैं इसका कैसे उपयोग करूंगा।

DECLARE @MyID INT; 

SET @MyID = 0; 

SELECT @MyID = [TableID] 
    FROM [MyTable] 
WHERE [TableID] = 99; 

IF @MyID > 0 
BEGIN 

    INSERT INTO [MySecondTable] 
     VALUES (@MyID, othervalues); 

END 
0

PostgreSQL शैली चर:

DECLARE my_variable1 int; 
DECLARE my_variable2 int; 
BEGIN 
    my_variable1 := 25; 
    SELECT INTO my_variable2 id FROM my_table1; 
    INSERT INTO my_table2 (my_field1, my_field2, id) VALUES ('XXX', 'YYY', my_variable2); 
END; 
+0

my_table1 से मेरी my_variable2 आईडी में चुनें; मेरे लिए काम नहीं करता है ... क्या यह मूल है? त्रुटि: "INTO" पर या उसके पास वाक्यविन्यास त्रुटि – Tomino

0

ओरेकल शैली चर:

DECLARE v_MyVariable1 NUMBER; 
DECLARE v_MyVariable2 VARCHAR2(100); 

BEGIN 
    v_MyVariable1 := 0; 
    SELECT INTO v_MyVariable2 CUSTOMER_NAME 
     FROM CUSTOMERS; 

    SELECT INTO v_MyVariable1 CUSTOMER_HISTORY_SEQ.NEXTVAL FROM DUAL; 

    INSERT INTO CUSTOMERS_HISTORY (CUSTOMER_ID, CUSTOMER_NAME) VALUES (v_MyVariable1, v_MyVariable2); 

    EXCEPTION 
     WHEN OTHERS THEN 
      NULL; 
END; 
संबंधित मुद्दे