2013-03-07 3 views
1
CREATE PROCEDURE getNumbers 
(
@dName VARCHAR(20), 
@iNum INT OUTPUT, 
@sNum INT OUTPUT 
) 
AS 
BEGIN 
@iNum=SELECT count(i.ID) FROM instructor WHERE [email protected] 
@sNum=SELECT count(s.ID) FROM student AS s WHERE [email protected] 
END 

вот моя первая попытка создания хранимой процедуры. Я продолжаю получать ошибку в синтаксисе на строке: @dName VARCHAR (20),ошибка в хранимой процедуре синтаксис

Я рассмотрел другие проблемы и попытался их решения, но ничего не работает!

ответ

1

ли это MSSQL? Если Вам не нужно использовать скобки, и вы должны использовать следующий синтаксис для назначения переменных:

CREATE PROCEDURE getNumbers 
@dName VARCHAR(20), 
@iNum INT OUTPUT, 
@sNum INT OUTPUT 
AS 
BEGIN 
SELECT @iNum=count(i.ID) FROM instructor WHERE [email protected]; 
SELECT @sNum=count(s.ID) FROM student AS s WHERE [email protected]; 
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 ; 
+0

Спасибо, я использую mysql, это сработало. –

1

Попробуйте эту форму:

CREATE PROCEDURE getNumbers 
@dName VARCHAR(20), 
@iNum INT OUTPUT, 
@sNum INT OUTPUT 
AS 
BEGIN 
+0

все то же ошибку в том же сервере SQL места –

+0

? У вас есть что-то еще в этом сценарии? – niculare

+0

То есть весь «запрос» –

Смежные вопросы