2010-05-27 39 views
11

如果我想從表中選擇任何id並想將其值作爲外鍵插入另一個表中,那麼我將如何通過存儲過程來完成此操作?如何在存儲過程中使用局部變量?

+0

與SQL – 2010-05-27 12:33:25

+0

你是如何訪問數據庫的標籤是:ADO.NET,實體框架,LINQ到SQL ...?你在尋找ASP.NET代碼或SQL代碼的幫助嗎? – Richard 2010-05-27 12:33:51

+0

我刪除了ASP.NET標記,因爲這個問題並不是關於ASP.NET,而是處理SQL中的存儲過程。知道你使用的是什麼數據庫引擎會很有用。 – 2010-05-27 12:39:31

回答

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

SELECT INTO my_variable2 id FROM my_table1; 不適用於我...是否正常? 錯誤:語法錯誤處於或接近「INTO」 – Tomino 2015-05-07 18:57:30

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; 
相關問題