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

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

23.06.2016, 06:18. Показов 3450. Ответов 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
5961 / 4537 / 1094
Регистрация: 29.08.2013
Сообщений: 28,148
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
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