2010-05-27 17 views
11

si deseo seleccionar cualquier ID de una tabla y quiero insertar su valor en otra tabla como clave externa, ¿cómo lo haré a través del procedimiento almacenado?¿Cómo usar variables locales en procedimientos almacenados?

+0

etiqueta con SQL –

+0

¿Cómo se accede a la base de datos: ADO.NET, Entity Framework, LINQ a SQL ...? ¿Estás buscando ayuda en tu código ASP.NET o en el código SQL? – Richard

+0

Quité la etiqueta ASP.NET ya que esta pregunta no tiene nada que ver con ASP.NET, sino que trata con procedimientos almacenados en SQL. Sería útil saber qué motor de base de datos está utilizando. –

Respuesta

18

Un ejemplo de cómo abordaría esto.

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

variables de estilo de 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

SELECCIONAR EN my_variable2 id FROM my_table1; No funciona para mí ... ¿es corrent? ERROR: error de sintaxis en o cerca de "INTO" – Tomino

0

variables de estilo de Oracle:

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; 
Cuestiones relacionadas