Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 26.06.2015
Сообщений: 56
1

Передача аргументов в хранимую процедуру для EXEC

03.09.2016, 19:44. Показов 1656. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать хранимую процедуру, показывающую список книг, отвечающих набору критериев.
Критерии: имя автора, фамилия автора, тематика, категория. Кроме того, список должен быть отсортирован по номеру поля
указанному в 5-м параметре, в направлении, указанном в 6-м параметре

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
IF OBJECT_ID ( 'BooksListWithParameters', 'P' ) IS NOT NULL 
    DROP PROCEDURE BooksListWithParameters;
 
GO
 
CREATE PROCEDURE BooksListWithParameters 
@firstName nvarchar(25), 
@lastName nvarchar(25), 
@theme nvarchar(50), 
@category nvarchar(50), 
@field nvarchar(1), 
@order nvarchar (4)
AS
 
declare @proc nvarchar(max)
set @proc = 
'SELECT b.Name AS ''Название книги'', a.FirstName + '' '' + a.LastName AS ''Автор'', 
t.Name AS ''Тематика'', c.Name AS ''Категория''
FROM Books b
JOIN Authors a ON a.Id = b.Id_Author
JOIN Themes t ON t.Id = b.Id_Themes
JOIN Categories c ON c.Id = b.Id_Category
WHERE a.FirstName = [' + @firstName + '] AND a.LastName = [' + @lastName + '] 
AND t.Name = [' + @theme + '] AND c.Name = [' + @category + ']
ORDER BY [' + @field + '] DESC' -- [' + @order + ']'
 
EXECUTE sp_executesql @proc
 
GO
 
EXEC BooksListWithParameters 'Алексей', 'Архангельский', 'Программирование', 'C++ Builder', '2', 'DESC'
Выдает ошибку:
Msg 207, Level 16, State 1, Line 50
Invalid column name 'Алексей'.
Msg 207, Level 16, State 1, Line 50
Invalid column name 'Архангельский'.
Msg 207, Level 16, State 1, Line 51
Invalid column name 'Программирование'.
Msg 207, Level 16, State 1, Line 51
Invalid column name 'C++ Builder'.
Msg 207, Level 16, State 1, Line 52
Invalid column name '2'.


Добавлено через 26 минут
Разобрался )))

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
IF OBJECT_ID ( 'BooksListWithParameters', 'P' ) IS NOT NULL 
    DROP PROCEDURE BooksListWithParameters;
 
GO
 
CREATE PROCEDURE BooksListWithParameters 
@firstName nvarchar(25), 
@lastName nvarchar(25), 
@theme nvarchar(50), 
@category nvarchar(50), 
@field nvarchar(1), 
@order nvarchar (4)
AS
 
declare @proc nvarchar(max)
set @proc = 
'SELECT b.Name AS ''Название книги'', a.FirstName + '' '' + a.LastName AS ''Автор'', 
t.Name AS ''Тематика'', c.Name AS ''Категория''
FROM Books b
JOIN Authors a ON a.Id = b.Id_Author
JOIN Themes t ON t.Id = b.Id_Themes
JOIN Categories c ON c.Id = b.Id_Category
WHERE a.FirstName = ''' + @firstName + ''' AND a.LastName = ''' + @lastName + ''' 
AND t.Name = ''' + @theme + ''' AND c.Name = ''' + @category + '''
ORDER BY ' + @field + ' ' + @order + ' '
 
EXECUTE sp_executesql @proc
 
GO
 
EXEC BooksListWithParameters 'Алексей', 'Архангельский', 'Программирование', 'C++ Builder', '1', 'DESC'
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2016, 19:44
Ответы с готовыми решениями:

Передача параметра в хранимую процедуру в качастве поля для сортировки
Помогите, как передать параметр в хранимую процедуру, что-бы его можно было использовать в ORDER BY...

Передача параметров в хранимую процедуру для отчета Crystal Reports 6.0
Кто нибудь передавал параметры в отчет на основе хранимой процедуры SQL Server 7.0 ? Как это...

Передача параметров в хранимую процедуру
ПРивет всем, ПОдскажите плз, хотел сделать универсальную процедуру на выборку, по нескольким...

Передача рисунка в хранимую процедуру
Есть таблица (SQL 200) CREATE TABLE . ( IDENTITY PRIMARY KEY NOT NULL, (250) NOT NULL, ,...

0
03.09.2016, 19:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2016, 19:44
Помогаю со студенческими работами здесь

Передача параметров в хранимую процедуру
Хочу в хранимой процедуре сделать параметром название таблицы, возможно ли это? на код ниже выдает...

Передача параметров в хранимую процедуру
Подскажите вот в sql у меня есть параметры @Author И мне нужно Передавать эти параметра при...

Передача табличного типа в хранимую процедуру
В бд есть свой самопальный тип TableType который реализует простенький словарик CREATE TYPE...

Передача параметров в хранимую процедуру FDQuery
Собственно вопрос в этом, как их передать? Сама процедура описана, параметры есть, нету значений в...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru