【发布时间】:2025-12-30 00:25:07
【问题描述】:
我有一个具有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 的异常吗?
【问题讨论】:
标签: sql-server-2005 tsql raiserror