2010-05-27 14 views
11

se voglio selezionare un id da una tabella e voglio inserire il suo valore in un'altra tabella come chiave esterna, quindi come lo farò attraverso la stored procedure?Come utilizzare le variabili locali nelle stored procedure?

+0

tag con SQL –

+0

Come stai accesso al database: ADO.NET, Entity Framework, LINQ to SQL ...? Stai cercando aiuto nel tuo codice ASP.NET o nel codice SQL? – Richard

+0

Ho rimosso il tag ASP.NET perché questa domanda non riguarda affatto ASP.NET, ma si occupa delle stored procedure in SQL. Sarebbe utile sapere quale motore di database stai usando. –

risposta

18

Un esempio di come mi avvicinerei a questo.

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

variabili stile 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

SELEZIONA IN my_variable2 id FROM my_table1; Non funziona per me ... è corretto? ERRORE: errore di sintassi ao vicino a "INTO" – Tomino

0

Oracle variabili di stile:

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; 
Problemi correlati