Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在存储过程中使用局部变量?_Sql_Sql Server_Stored Procedures_Variables - Fatal编程技术网

Sql 如何在存储过程中使用局部变量?

Sql 如何在存储过程中使用局部变量?,sql,sql-server,stored-procedures,variables,Sql,Sql Server,Stored Procedures,Variables,如果我想从一个表中选择任何id,并想将它的值作为外键插入另一个表中,那么我将如何通过存储过程执行此操作?我将如何处理此问题的示例 DECLARE @MyID INT; SET @MyID = 0; SELECT @MyID = [TableID] FROM [MyTable] WHERE [TableID] = 99; IF @MyID > 0 BEGIN INSERT INTO [MySecondTable] VALUES (@MyID, othe

如果我想从一个表中选择任何id,并想将它的值作为外键插入另一个表中,那么我将如何通过存储过程执行此操作?

我将如何处理此问题的示例

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

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

Oracle样式变量:

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

如何访问数据库:ADO.NET、实体框架、LINQ到SQL。。。?您是在ASP.NET代码中寻求帮助,还是在SQL代码中寻求帮助?我删除了ASP.NET标记,因为这个问题根本不是关于ASP.NET的,而是关于SQL中的存储过程。了解您正在使用的数据库引擎将非常有用;不适合我。。。是正确的吗?错误:“INTO”处或附近出现语法错误