Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для X-Programmer
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 66

Нужно написать хранимую процедуру, где бы переменная служила бы названием таблицы

27.05.2015, 17:51. Показов 2126. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем хочу написать такую процедуру, где в переменную записывается имя таблицы, а сама процедура выполнила бы выборку данных из этой таблицы.
Я использую связку Microsoft Visual Studio + MS Sql . Есть форма с текстбоксом и кнопкой. Логика всего этого:
пользователь пишет в текстбокс название таблицы, нажимает кнопку, после чего прога показывает результат выборки.
Всё, что мне нужно, это - передать название таблицы в переменную.
Вот что я набросал.
SQL
1
2
3
4
5
6
CREATE PROCEDURE tablename
@TABLE VARCHAR(50)
AS 
BEGIN
SELECT SUM (@TABLE.План) AS План_за_месяц, SUM(@TABLE.Факт) AS Аммиак.Факт_за_месяц FROM @TABLE
END
Но по нажатии кнопки выполнить, среда management studio ругается, что неправильный синтаксис перед " .План".
Так что я даже не сумел создать процедуру.
Забыл сказать про таблицу.
Есть три похожие таблицы: Аммиак, Азотная_кислота и Карбамид.
Первые несколько полей одинаковые, а именно "Дни_месяца"(в данном случае это поле не нужно), "План" (то, что нужно) и "Факт" (то, что нужно).
Скрин с формой я приложу ниже.

Помогите, пожалуйста,
Миниатюры
Нужно написать хранимую процедуру, где бы переменная служила бы названием таблицы  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2015, 17:51
Ответы с готовыми решениями:

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

Правильно написать хранимую процедуру
Всем доброго времени суток. У меня есть представление OrderByTickets В клиентской части я произвожу поиск по Ид, ФИО, телефон, Дата...

Нужно создать хранимую процедуру для БД с параметрами
Нужно создать хранимую процедуру для БД с параметрами, подсчитывающую количество товаров во всех заказах, сделанных таким-то покупателем...

6
311 / 271 / 118
Регистрация: 05.06.2013
Сообщений: 868
27.05.2015, 22:17
Лучший ответ Сообщение было отмечено X-Programmer как решение

Решение

А зачем, собственно, процедура?
Почему не просто выполнить запрос с подстановкой в него таблицы:
C#
1
2
string db = TextBox1.Text;
SqlCommand cmd = new SqlCommand("SELECT SUM (" + db + ".План) AS План_за_месяц, SUM(" + db + ".Факт) AS Аммиак.Факт_за_месяц FROM " + db + ";", sql_connect);
1
 Аватар для X-Programmer
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 66
28.05.2015, 00:29  [ТС]
Цитата Сообщение от Jefe Посмотреть сообщение
А зачем, собственно, процедура?
Почему не просто выполнить запрос с подстановкой в него таблицы:
Это потому что я не умный =)
Спасибо, что откликнулись помочь ))
Проверю, отпишусь =)

Добавлено через 23 минуты
Thank you so much Jefe
It works fine
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
28.05.2015, 08:51
подходец откровенно говоря, попахивает
0
 Аватар для X-Programmer
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 66
28.05.2015, 15:46  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
подходец откровенно говоря, попахивает
да ладно, раскладка была английская, вот и ответил на английском. Тут же все программисты сидят, так что это не должно быть проблемой, ведь знание английского не ниже интермедиэйт. Так что не надо думать, что я какой-то шпион лол
0
311 / 271 / 118
Регистрация: 05.06.2013
Сообщений: 868
28.05.2015, 16:49
pincet, наверное, немного другое имел ввиду)

Вообще, если БД небольшая, то кошернее было бы при запуске программы обращаться к БД и вытаскивать все названия таблиц в выпадающий список.
А на выбор чего-либо в этом выпадающем списке уже повесить событие - выполнение select из выбранной таблицы.
0
 Аватар для X-Programmer
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 66
29.05.2015, 20:04  [ТС]
Цитата Сообщение от Jefe Посмотреть сообщение
вытаскивать все названия таблиц в выпадающий список
интересный вариант, но и ваш первый способ тоже хорош и работает.
Цитата Сообщение от Jefe Посмотреть сообщение
pincet, наверное, немного другое имел ввиду)
ну если так, то мои глубочайшие извинения!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2015, 20:04
Помогаю со студенческими работами здесь

Как передать имя таблицы параметром в хранимую процедуру
Здравствуйте! Подскажите, пожалуйста, каким должен быть правильный синтаксис хранимой процедуры в Firebird, чтобы имя таблицы в...

Как написать хранимую процедуру, а не функцию
Имеется программа (скрина 1), при выборе параметра например: Компания - acer Из бд 50 моделей, покажутся только 10 моделей компании Acer ...

Написать хранимую процедуру, которая использует явный курсор
Есть 2 таблицы, нужно написать любую хранимую процедуру с минимальными подсчетами, которая использует явный курсор. Вообще потерялась во...

Не могу использовать в MS SQL Server хранимую процедуру, где запрос длиннее 4000 символов
Объявляю строку запроса как nvarchar(4000)... Может есть какой способ обойти это? При замене типа переменной, - ошибка... Помогите!

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru