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

Остановка выполнения запроса по условию

23.06.2016, 06:18. Показов 3477. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане. пишу большую хранимую процедуру для сборки данных по таблицам, в самом начале проверяю ошибки следующим запросом
SQL
1
2
3
4
5
6
7
8
9
10
11
DECLARE @name CHAR(50) = 'Май2016', --ПЕРЕМЕННАЯ ТАБЛИЦЫ МЕСЯЦА, например Май2016
@is_error CHAR(50) = 'Внимание! Есть ошибки!' ,
@no_error CHAR(50) = 'Ошибок нет.'
 
EXEC ('select * from '+@name+' where '+@name+'.[Код медицинского работника]=''0''')
IF @@ROWCOUNT>0
BEGIN 
print @is_error
END
ELSE
print @no_error
В качестве метода остановки выполнения процедуры при возникновении ошибки мне был предложен следующий код

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE @name CHAR(50) = 'Май2016', --ПЕРЕМЕННАЯ ТАБЛИЦЫ МЕСЯЦА, например Май2016
@is_error CHAR(50) = 'Внимание! Есть ошибки!' ,
@no_error CHAR(50) = 'Ошибок нет.'
 
BEGIN TRANSACTION
EXEC ('select * from '+@name+' where '+@name+'.[Код медицинского работника]=''0''')
IF @@ROWCOUNT>0
BEGIN 
ROLLBACK TRANSACTION
print @is_error
END
ELSE
print @no_error
Но rollback transaction ничего не откатывает и выполнение запроса продолжается. Подскажите, пожалуйста, менее костыльный метод остановки выполнения запроса.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.06.2016, 06:18
Ответы с готовыми решениями:

Остановка диапазона по условию
Приветствую! Есть два макроса: Один соединяет ячейки по две: Function ТВК4(Ячейка1, Ячейка2) Dim R1 As String Dim R2 As...

Остановка по условию в отладчике
Доброго дня! Как в редакторе VBA сделать точку останова по условию?

Остановка выполнения
Написал программу, которая постоянно шлёт информацию по сокету на сервер и получает какой-то ответ. Решил запустить 2 программы на разных...

2
5984 / 4559 / 1095
Регистрация: 29.08.2013
Сообщений: 28,197
Записей в блоге: 3
23.06.2016, 08:47
Цитата Сообщение от Doc_W Посмотреть сообщение
Но rollback transaction ничего не откатывает
а что он должен откатывать? SELECT?

используйте raise error
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 6
28.06.2016, 08:31  [ТС]
он должен откатывать дальнейшие SELECT'ы, расширенный текст запроса выглядит следующим образом:
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
32
33
34
USE [hospital]
GO
/****** Object:  StoredProcedure [dbo].[Сделать все красиво]    Script Date: 28.06.2016 10:28:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Сделать все красиво]
@name CHAR(50), --ПЕРЕМЕННАЯ ТАБЛИЦЫ МЕСЯЦА, например Май2016
@is_error CHAR(50) = 'Внимание! Есть ошибки!' ,
@no_error CHAR(50) = 'Ошибок нет.'
AS
BEGIN
 
    SET NOCOUNT ON;
 
 
 
EXEC ('select * from '+@name+' where '+@name+'.[Код медицинского работника]=''0''')
IF @@ROWCOUNT>0
BEGIN 
print @is_error
 
END
ELSE
print @no_error
 
-- СОБРАТЬ СОТРУДНИКОВ
IF OBJECT_ID('dbo.staff', 'U') IS NOT NULL 
    DROP TABLE dbo.staff
SELECT DISTINCT [ФИО мед  Работника], [Код]
INTO dbo.staff
FROM dbo.RepStaf196
ALTER TABLE staff ADD [Номер] INT IDENTITY(1,1) PRIMARY KEY
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.06.2016, 08:31
Помогаю со студенческими работами здесь

Остановка выполнения RxJava
В процессе изучения RxJava + Retrofit уперся с вопросом как правильно завершить выполнение RxJava? Что необходимо сделать: Если...

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

Остановка выполнения сценария в IE
Привет, имеется простенький код: <script type="text/javascript"> window.onload=function() { var myURL = document.location.href; ...

Остановка выполнения программы....
Есть прога на Builder'е 6.0, можно ли по нажатии кнопки прекращать выполнение всех выполняющихся в ней действий? (т.е. человек запустил...

Остановка выполнения программы на C++
Здравствуйте, уважаемые форумчане! Столкнулся со следующей проблемой. Сейчас работаю над проектом (отправка кодов решений на C++ и их...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru