如何验证是否已在 SQL 服务器中删除行
How to verify if a row has been deleted in SQL server
我有一个要求,只有在从表中实际删除了一行时,我才必须在C++代码中记录一条消息。有没有办法从SQL Server 2012获取删除语句实际上删除了一行的确认消息?计数 (*( 无济于事,因为有多个客户端将数据填充到表中。所以不能依靠前后计数。
提前致谢
我个人使用非常简单的方法。
当我从表中删除一行时,我知道它的主键,它的ID
。我在 DELETE ... WHERE ...
语句中使用此主键值。然后我使用相同的ID
进行SELECT ... WHERE ...
并检查它返回了多少行。如果没有返回任何行,我确定该行已成功删除。或者SELECT COUNT(*) WHERE ...
与该ID
一起使用并检查计数。
使用这种方法的情况是我有很多与我要从中删除行的表相关的子表。所有相关表都配置了外键和参照完整性约束。所有约束都是简单的CHECK CONSTRAINT
没有级联删除。如果用户确实需要从主表中删除一行,他必须首先删除所有子行。如果用户尝试从主行中删除时仍有相关的子行,则删除将由于引用约束而失败。
此外,还有@@ROWCOUNT或ROWCOUNT_BIG:
返回受上一条语句影响的行数。如果 行数超过20亿,使用ROWCOUNT_BIG。
在DELETE
语句后立即使用 SELECT @@ROWCOUNT
。
请参阅此问题:使用 t-SQL 选择已删除记录的数量
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从服务器传输到客户端的消息不会出现
- 如何使用c++在VS 2019上运行SQL查询
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 为 Sql 服务器实现 odbc 包装器.将数据库数据读取为字符或要求驱动程序将数据转换为 C 类型
- 无法使用 soci 库连接到 SQL 服务器
- 我需要SQL服务器才能使用Qt的QtSql库吗?
- 如何将自动递增的主键的数据从 sql 服务器获取到我的数据网格视图
- 如何验证是否已在 SQL 服务器中删除行
- c++浮点到sql服务器DECIMAL的正确转换
- 针对 Boost ASIO 的设计,用于 Web 服务器的工作线程 SQl 查询'practical'
- 为什么SQL服务器将值传递给存储过程中的OUTPUT变量?
- 自主地从一个sql服务器推送到另一个sql server
- sql 服务器 - 如何在 ODBC 中使用C++多个记录集