Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Построчный дебаг в таблице  [new]
Den_KP
Member

Откуда:
Сообщений: 208
Всех с Новой боевой неделей!

Подскажите пожалуйста, как можно задебажить на какой строке падает ошибка при сравнении? Т,е. запустить этот скрипт и увидеть на какой итерации произошел сбой.

use DB;
--select '%' + left(internetaddress, PATINDEX('%@%', internetaddress)-1) + '%' from NamesPerson
DECLARE @k smallint;
set @k = (select TOP 1 COUNT(Lastname) FROM NamesPerson Where shortname not like '%' + left(internetaddress, PATINDEX('%@%', internetaddress)-1) + '%' and AltFullName is not null);
if @k > 0
	BEGIN
		EXEC msdb.dbo.sp_send_dbmail
		@profile_name = 'SMTP Mail',
		@recipients = '@mail',
		@query = 'use DB; select Lastname FROM NamesPerson Where shortname not like ''%'' + left(internetaddress, PATINDEX(''%@%'', internetaddress)-1) + ''%'' and AltFullName is not null order by lastname' ,
		@subject = 'Не совпадают ShortName либо присутствует лишний (ShortName)',
		@attach_query_result_as_file = 1;
	END
10 фев 20, 07:11    [22076492]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4309
Den_KP,

PRINT поставьте. А ещё лучше используйте SSIS. Там Send Mail Task есть.
10 фев 20, 08:17    [22076504]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
Den_KP
Member

Откуда:
Сообщений: 208
a_voronin,

Вообще сделал так:
END TRY
BEGIN CATCH
SELECT
		ERROR_NUMBER() AS ErrorNumber,  
        ERROR_SEVERITY() AS ErrorSeverity,  
        ERROR_STATE() AS ErrorState,  
        ERROR_PROCEDURE() AS ErrorProcedure,  
        ERROR_LINE() AS ErrorLine,  
        ERROR_MESSAGE() AS ErrorMessage; 
END CATCH


Но мне результат не помог поэтому просто сделал:
select * FROM NamesPerson Where shortname not like '%' + left(internetaddress, PATINDEX('%@%', internetaddress)-1) + '%' and AltFullName is not null;
10 фев 20, 10:55    [22076579]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7332
Den_KP,

добавьте в таблицу проверочное ограничение после устранения ошибок.
10 фев 20, 11:37    [22076627]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
Den_KP
Member

Откуда:
Сообщений: 208
Владислав Колосов,

Хранимкой? Или как то по другому?
10 фев 20, 11:47    [22076640]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7332
Den_KP,

можно использовать выражение или функцию. alter table .. add constraint ..
10 фев 20, 12:07    [22076673]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
Den_KP
Member

Откуда:
Сообщений: 208
Владислав Колосов,

А на уровне БД тригерром можно сделать? Или нужно приклад лопатить?
10 фев 20, 12:28    [22076701]     Ответить | Цитировать Сообщить модератору
 Re: Построчный дебаг в таблице  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7332
Den_KP,

хотите - триггером, но я написал, как лучше.
10 фев 20, 13:20    [22076757]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить