1
CREATE PROCEDURE getNumbers
(
@dName VARCHAR(20),
@iNum INT OUTPUT,
@sNum INT OUTPUT
)
AS
BEGIN
@iNum=SELECT count(i.ID) FROM instructor WHERE dept_name=@dName
@sNum=SELECT count(s.ID) FROM student AS s WHERE dept_name=@dName
END

这是我第一次尝试制作存储过程。我不断收到语法错误:@dName VARCHAR(20),

我查看了其他问题并尝试了他们的解决方案,但没有任何效果!

4

2 回答 2

1

试试这个表格:

CREATE PROCEDURE getNumbers
@dName VARCHAR(20),
@iNum INT OUTPUT,
@sNum INT OUTPUT
AS
BEGIN
于 2013-03-07T06:49:27.767 回答
1

是 MSSQL 吗?如果是这样,您不需要使用括号,您应该使用以下语法来分配变量:

CREATE PROCEDURE getNumbers
@dName VARCHAR(20),
@iNum INT OUTPUT,
@sNum INT OUTPUT
AS
BEGIN
SELECT @iNum=count(i.ID) FROM instructor WHERE dept_name=@dName;
SELECT @sNum=count(s.ID) FROM student AS s WHERE dept_name=@dName;
END

如果您在 MYSql 中执行此操作

DELIMITER $$     
CREATE PROCEDURE getNumbers(
    IN dName VARCHAR(20),
    OUT iNum INT,
    OUT sNum INT)
    BEGIN
    SELECT count(i.ID)  INTO iNum FROM instructor WHERE dept_name=dName;
    SELECT count(s.ID) INTO sNum FROM student AS s WHERE dept_name=dName;
    END$$ 

DELIMITER ; 
于 2013-03-07T06:49:44.583 回答