Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хранимые процедуры  [new]
Beginner_3
Member

Откуда:
Сообщений: 4
Здравствуйте. В общем лаба по этой теме. Есть несколько вопросов.
В общем есть БД sample. В ней есть 4 таблицы:

project(project_no PK,project_name,budget)
department(dept_no PK,dept_name,location)
works_on(emp_no PK,project_no PK,job,enter_date)
employee(emp_no PK, emp_fname,emp_lname,dept_no)




1.Создать процедуру employees_in_dept, которая отображает табельные номера и фамилии всех сотрудников, работающих в определенном отделе . Номер отдела является параметром процедуры, и его нужно указать при ее вызове.

Сделал вот такое. Вроде работет. Правильно?
USE sample;
GO
CREATE PROCEDURE employees_in_dept(@dept_no CHAR) AS
SELECT emp_no,emp_lname
FROM employee
WHERE dept_no IN (SELECT @dept_no FROM department GROUP BY dept_no);




2.Нужно выполнить такой запрос
USE sample;
EХEC employeesindept 'd1'
WITH RESULT SETS
(([EMPLOYEE NUMBER] INT NOT NULL,
[NAME OF EMPLOYEE] CHAR(20) NOT NULL));

Но он почему-то не возвращает никаких данных, хотя данные соотв. запросу в БД присутствуют. В чём подвох?
23 апр 16, 18:43    [19097884]     Ответить | Цитировать Сообщить модератору
 Re: Хранимые процедуры  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31432
Beginner_3
Но он почему-то не возвращает никаких данных, хотя данные соотв. запросу в БД присутствуют. В чём подвох?
Подвох в том, что @dept_no CHAR - это строка длинной в 1 символ.
Замените на CHAR(20)
23 апр 16, 18:49    [19097900]     Ответить | Цитировать Сообщить модератору
 Re: Хранимые процедуры  [new]
Beginner_3
Member

Откуда:
Сообщений: 4
Сработало. Благодарю
23 апр 16, 19:03    [19097932]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить