Я запускаю пакет операторов для нескольких столбцов и таблиц и хочу получить информацию о том, какие ошибки происходят.
Этот оператор меняет тип (с varchar на nvarchar), и в случае сбоя он возвращает 2 ошибки.
Сообщение 5074, уровень 16, состояние 1, строка 1 Объект 'DF_XXX_YYY' зависит от столбца 'YYY'.
Сообщение 4922, уровень 16, состояние 9, строка 1 ALTER ТАБЛИЦА ALTER COLUMN Описание не удалось, поскольку один или несколько объектов обращаются к этому столбцу.
Однако, когда я помещаю его в блок TRY / CATCH
и выбираю ERROR_MESSAGE ()
, он возвращает только вторую ошибку:
ALTER TABLE ALTER COLUMN Description failed потому что один или несколько объектов обращаются к этому столбцу.
В идеале я бы попросил вернуть первое сообщение, так как оно гораздо информативнее.
Точный оператор SQL:
begin try
alter table XXX
alter column YYY
nvarchar(200)
end try
begin catch
select ERROR_MESSAGE(), ERROR_LINE(), ERROR_NUMBER(), ERROR_PROCEDURE(), ERROR_SEVERITY(), ERROR_STATE()
end catch
Кто-нибудь знает, как я могу получить более информативное сообщение? ( @@ ERROR
также возвращает вторую ошибку)