Sql server 函数或存储过程调用后的持久行锁

Sql server 函数或存储过程调用后的持久行锁,sql-server,Sql Server,我有两个场景,其中datetime值返回给调用应用程序。第一个场景使用函数,第二个场景使用带有输出参数的存储过程。使用这两种方法都可以。是否可以锁定具有datetime值的行,以防止任何额外的读取,从而在值返回给调用应用程序后,锁定仍然存在?我有一个带有日期列和时间列的表。每个日期有十行,间隔15分钟: +------------+----------+ | Date | Time | +------------+----------+ | 10/12/2019 | 12:0

我有两个场景,其中datetime值返回给调用应用程序。第一个场景使用函数,第二个场景使用带有输出参数的存储过程。使用这两种方法都可以。是否可以锁定具有datetime值的行,以防止任何额外的读取,从而在值返回给调用应用程序后,锁定仍然存在?我有一个带有日期列和时间列的表。每个日期有十行,间隔15分钟:

+------------+----------+
| Date       | Time     |
+------------+----------+
| 10/12/2019 | 12:00:00 |
+------------+----------+
| 10/12/2019 | 12:15:00 |
+------------+----------+
| 10/12/2019 | 12:30:00 |
+------------+----------+

因此,假设函数或存储过程查找包含
10/12/2019 12:15:00
的行。在函数或存储过程完成其作业后,是否可以通过将datetime值返回给调用应用程序来锁定此行并使其保持锁定状态?然后,调用应用程序将对SQL Server进行另一个函数或存储过程调用,以在其工作完成时解锁该行。有什么想法吗?也许CLR存储过程可以处理这些事情?非常感谢您的任何输入。

您可以在SQL中使用CASE语句。简短回答-否(或者不太可能,但高度依赖于您的代码)。更长的回答-这正是OLTP试图避免的类型。搜索悲观锁定与乐观锁定。应用程序锁可能是一种尝试方法。是否使用事务?