插入存储过程后,Sql Server运行更新存储过程

时间:2012-10-23 15:41:04

标签: c# .net tsql stored-procedures insert

我有两个存储过程,一个是insert一个记录到表中,另一个是update该记录的一列。

首先运行insert,然后我将运行一些其他进程(包括用于其他表的存储过程)。最后,我将运行update存储过程以将记录更新为已完成。

但是,有时update找不到匹配(刚插入的那个,我使用了一些变量(其中一个是datetime类型),我传递给insert存储过程来查找刚刚插入的记录然后更新。我使用了更新触发器来找到这个原因。)

如何在运行update之前确保数据已经在表格中?我需要while循环吗?

编辑:我在一个BackgroundWorker.DoWork Eventhandler中运行这些

2 个答案:

答案 0 :(得分:3)

这与声音不同步,因此您不需要让更新脚本等待插入。

也许我误会了。但是,对我来说,最重要的是你说你发现要用datetime更新的行而不是它的标识。如果你有插入proc返回SCOPE_IDENTITY,然后将其传递给更新proc ...它听起来应该解决你的问题,更新无法找到正确的行。

答案 1 :(得分:0)

在一次交易中运行所有数据库内容。

简单示例:

using(TransactionScope scope = new TransactionScope())
{
  // init connection, command etc.

  ...

  insertCommand.ExecuteNonQuery();

  ...

  updateCommand.ExecuteNonQuery();

  scope.Complete();
}