【发布时间】:2010-08-20 14:02:01
【问题描述】:
我有一个 ASP 表单,其中包含一些我想要修改然后更新的记录。目前,更新通过 DLL 进行一次一次更新,该 DLL 只需构建一条 SQL 语句并为每条记录调用数据库。
现在,我需要在 SQL 中进行检查,以确保我不会从给定的建筑物中删除最后一种类型的位置。这样我有 5 个工作场所,如果我试图将所有这些工作场所变成办公室,我应该会收到一条错误消息,说我每层至少需要一个工作场所,并且 SQL 应该结束而不更新任何行。目前,它会更新每一行直到最后一行,然后抛出错误。
有人向我指出我应该尝试批量处理 SQL 或更新,但我不知道该怎么做。请问有什么提示吗?
【问题讨论】:
-
您的意思是创建一个 SQL 事务以便在出现问题时允许回滚吗?您能否详细说明一下这句话:“确保我不会从给定的建筑物中删除最后一种类型的位置”?
-
我试图通过事务锁定它,但它似乎不起作用。例如,当我尝试更新不止一条记录时,它给了我错误。我所说的那句话是什么意思...我在建筑物的一层内有位置。他们有一个类型(工作场所、办公室、厨房等)。每个楼层必须至少有一个工作场所,因此我必须限制用户进行更改以删除楼层的最后一个工作场所。如果他们尝试进行大量更改并尝试提交这些更改,而这些更改会删除最后一个工作场所,我必须停止所有这些更改。
标签: sql-server-2008 asp-classic ado batch-updates