我有一个有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 的异常吗?