У меня есть представление с триггером INSTEAD OF INSERT
(в SQL Server 2005).Когда пользователь вставляет в представление, он фактически делает вставки и обновляет ряд таблиц.Представление достаточно сложное, чтобы не иметь индекса, поэтому, к сожалению, оно не ограничено.
Представление вставляется в C # с использованием кода, который было бы проблематично изменить.Этот код улавливает нарушения первичного и уникального ключа с помощью следующего:
try
{
... // Insert into view
}
catch (SqlException ex)
{
if (ex.Number == 2627 || ex.Number == 2601) // Primary key exception, unique constraint violation
{
... // Report the duplicate entry to the user
}
else
{
throw;
}
}
Поэтому мой вопрос: могу ли я использовать RAISERROR
в моем триггере для создания исключения с номером 2627 или 2601?