Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 2
Регистрация: 25.12.2014
Сообщений: 43

Вставка тела хранимой процедуры вместо вызова по имени

25.11.2021, 19:20. Показов 1363. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый вечер.
Подскажите, в БД есть хранимая процедура.

В хранимой процедуре есть условие, которое мне нужно обойти не внося изменения в нее саму (грубо говоря выполнить ее без этого условия)
Можно как то вставить текст процедуры заместо ее имени?

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
USE [tablename]
GO
 
DECLARE @return_value INT
 
EXEC    @return_value = [dbo].[Event_Add]
        @employee_id = '00000001-0000-0000-0000-000000000001',
        @date_event = N'20210101 00:00:00.000',
        @registered_event_id = 1
 
SELECT  'Return Value' = @return_value
 
GO
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2021, 19:20
Ответы с готовыми решениями:

Синтаксис вызова хранимой процедуры?
Подскажите, как вызвать хранимую процедуру MS SQL из ASP-а?

Зависание программы после вызова хранимой процедуры на сервере
Добрый день! Столкнулся с проблемой следующего характера: Вызываю хранимую процедуру на SQL сервере. Всё хорошо - работает. Но, в...

После первого вызова хранимой процедуры показывает ошибку
База данных написана полностью на хранимых процедурах. И с вызовом всех процедур не возникает проблем, кроме как с одной. Структура таблиц:...

6
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
25.11.2021, 20:13
если ты выполняешь

SQL
1
EXEC procedure_name
то никак

но если у тебя есть доступ к самой процедуре, то ты можешь скопировать ее текст, изменить и выполнить
0
0 / 0 / 2
Регистрация: 25.12.2014
Сообщений: 43
25.11.2021, 20:49  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
но если у тебя есть доступ к самой процедуре, то ты можешь скопировать ее текст, изменить и выполнить
А как можно вставить в текст процедуры данные переменные?

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

SQL
1
2
  DECLARE @created_by uniqueidentifier
  @created_by = 'CB555633-2609-4207-9C5D-7D066891F00E'
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
25.11.2021, 22:13
Цитата Сообщение от olehator_ms Посмотреть сообщение
А как можно вставить в текст процедуры данные переменные?
не очень понял что нужно
есть такое
SQL
1
2
DECLARE @SQL nvarchar
SET @SQL = 'select a,b,c from t'
и потом можно выполнить уже этот запрос из переменной
Цитата Сообщение от olehator_ms Посмотреть сообщение
но подсветка синтаксиса ругается, что неверный синтаксис
SET?
0
 Аватар для Аватар
5393 / 1465 / 513
Регистрация: 31.05.2012
Сообщений: 5,153
25.11.2021, 23:07
ну коль есть текст подкорректируй его, сделай хранимку с другим именеи и обратись к ней
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
25.11.2021, 23:54
Цитата Сообщение от olehator_ms Посмотреть сообщение
которое мне нужно обойти не внося изменения в нее саму
Почему не создаете свой ?
Цитата Сообщение от qwertehok Посмотреть сообщение
но если у тебя есть доступ к самой процедуре, то ты можешь скопировать ее текст
Доступ может будет при вызове - при EXEC -ов , но чтобы не копировали или не посмотрели код процедур - может будет скомпилирован через with encryption вот так
SQL
1
2
3
4
5
6
7
8
   CREATE PROCEDURE Proc_Name
    @v_Deng money,
    @v_LpriemID  INT 
    WITH encryption -- !!!
     AS
       BEGIN tran
           -- здесь - ля - ля 
       commit tran;
В таком случи вы не сможете посмотреть код процедуры... и раз уже разговор о процедур ! Человек должен его изучать и создать свой.
0
0 / 0 / 2
Регистрация: 25.12.2014
Сообщений: 43
26.11.2021, 07:47  [ТС]
Дело в том, что база рабочая и лезть туда что-то добавлять свое не стоит. Однако выполнять процедуру нужно для добавления записи в таблицу, там просто генерируются uid'ы и т.д.
Вариант с SET ом помог, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.11.2021, 07:47
Помогаю со студенческими работами здесь

Не могу получить ответ от SQL сервера (результат вызова хранимой процедуры)
Добрый день! Есть у меня программа, в которой я подключаюсь к sql серверу, вызываю хранимую процедуру, передаю параметры, а вот результат...

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

Вставка выходного параметра хранимой процедуры SQL в поле Edit
С Delphi никогда не работал. Не могли бы Вы подсказать как Edit1.Text присвоить значение выходного параметра @_count хранимой процедуры...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru