c# - 如何在 SQL Server 或 ASP.NET C# 中强制执行一定数量或范围的受影响行

标签 c# asp.net sql-server sanity-check

对于某些 SQL 查询,我知道必须受 UPDATE、DELETE 或 INSERT 语句影响的预期行数。它可以是一个数字,例如 1,也可以是一个范围,例如 0-1 或 1-2 等。

什么是最好的方式来强制这是受影响的行数,否则会抛出异常?

此外,我能否将受 UPDATE/DELETE/INSERT 影响的行数限制为 1 行,否则会出现异常?

谢谢

最佳答案

您可以在插入、更新和删除中使用 TOP 来强制执行受影响的行数。这不会引发异常。

declare @T table (id int)

insert top(1) into @T values
(1),
(2),
(3)

如果你想要异常(exception),你可以在交易中使用@@ROWCOUNT

declare @Min int = 2
declare @Max int = 3

begin transaction

insert into Table1 values
(1),
(2),
(3),
(4)

if not @@rowcount between @Min and @Max
begin
  rollback
  -- Throw exception here, RAISERROR()
end
else
begin
  commit
end  

关于c# - 如何在 SQL Server 或 ASP.NET C# 中强制执行一定数量或范围的受影响行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027527/

相关文章:

python - 如何用python修改存储过程的输入值

c# - 如何在 Web 应用程序中通过连接到本地计算机的 ACR122U NFC 标签读取器读取 mifare 1k 卡

c# - 有没有办法检查模拟是否已为成员设置?

c# - 如何限制 ASP.NET 中每个请求的内存使用量?

c# - WPF:如何使自定义模式对话框闪烁?

asp.net - 除了 View 状态之外还有其他方式存储数据源吗?

asp.net - 可以让 CompareValidator 接受带逗号的数字吗?

c# - 百万插入 : SqlBulkCopy timeout

sql-server - 创建了到 Azure 的远程服务器链接,但未显示 dbo 架构

c# - 如何使用自定义 WPF 控件上的依赖属性处理计算值