Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
RHCP
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 39
#1

Хранимые процедуры-превышен уровень вложенности

31.07.2016, 14:00. Просмотров 901. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Помогите, пожалуйста, разобраться со вложенностью процедур.
В базе данных есть таблица студентов и групп, студент связан со своей группой по полю Id_Group.
Пытаюсь создать хранимую процедуру, которая показывает, сколько студентов в каждой группе:

T-SQL
1
2
3
4
5
6
7
8
9
10
USE library
GO
CREATE PROCEDURE CountStud
AS
SELECT Groups.Name, COUNT(*)
FROM Groups, Students
WHERE students.Id_Group = Groups.Id
GROUP BY Groups.Name
 
EXECUTE CountStud
Почему в результате выполнения этих строк появляется сообщение "Выполнение команд успешно завершено" а не выводится на экран таблица - результат select'а?
И самое главное, почему в дальнейшем, когда пытаешься выполнить только строчку
T-SQL
1
EXECUTE CountStud
select начинает выполняться многократно (последовательно выводятся на экран одна и та же таблица), ну и когда их количество доходит до 32 процесс прекращается с сообщением "Сообщение 217, уровень 16, состояние 1, процедура CountStud, строка 8
Превышен максимальный уровень вложенности хранимой процедуры, функции, триггера или представления (ограничение 32)."
В чем ошибка, как правильно создать, а потом вызвать процедуру, чтобы получить результат - 1 таблицу.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2016, 14:00
Ответы с готовыми решениями:

Создание хранимой процедуры, которая создает хранимые процедуры
Написать хранимую процедуру SQL , которая будет создавать хранимые...

Хранимые процедуры
Есть 2 таблицы create table личность (код_личности int not null primary key...

Хранимые процедуры
Приветствую всех. Вот в чём вопрос создал я хранимую процедуру которая создаёт...

Хранимые процедуры
Мне нужно чтобы в зависимости от выбранной страны в comboBox на форме в...

Хранимые процедуры
Добрый день,помогите,ребят) Создаю базу данных английского чемпионата,вот...

4
invm
1826 / 1236 / 357
Регистрация: 02.06.2013
Сообщений: 3,109
31.07.2016, 15:30 #2
Цитата Сообщение от RHCP Посмотреть сообщение
В чем ошибка
В том, что у вас вызов процедуры в самой процедуре. В результате - бесконечная рекурсия.
Цитата Сообщение от RHCP Посмотреть сообщение
как правильно создать, а потом вызвать процедур
Процедуру нужно создать один раз:
T-SQL
1
2
3
4
5
6
7
8
9
USE library
GO
CREATE PROCEDURE CountStud
AS
SELECT Groups.Name, COUNT(*)
FROM Groups, Students
WHERE students.Id_Group = Groups.Id
GROUP BY Groups.Name
GO
А потом уже можно сколько угодно раз вызывать
T-SQL
1
EXECUTE CountStud
1
RHCP
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 39
31.07.2016, 15:54  [ТС] #3
Спасибо.
Оказалось, просто пропущено слово GO в конце процедуры, и строчка EXECUTE CountStud получилась как часть процедуры
0
pincet
1308 / 895 / 121
Регистрация: 23.07.2010
Сообщений: 4,854
01.08.2016, 11:50 #4
Цитата Сообщение от invm Посмотреть сообщение
FROM Groups, Students
когда уже про это перестанут учить?
0
iap
805 / 615 / 125
Регистрация: 27.11.2009
Сообщений: 1,821
01.08.2016, 12:15 #5
Цитата Сообщение от pincet Посмотреть сообщение
когда уже про это перестанут учить?
Пока это будет модно в Oracle, как я понимаю...
Оттуда же любовь новичков к курсорам, наверно.
И там же ещё подселкты обожают!
0
01.08.2016, 12:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2016, 12:15

Хранимые процедуры
Здравствуйте. Подскажите способы возвращения значений из хранимой процедуры....

Хранимые процедуры
Столкнулся со странной проблемой никак не могу создать хранимую процедуру,...

хранимые процедуры
доброе время суток.. у меня такой вопрос: читал про компиляцию хранимых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru