Sql server 如何锁定函数?

Sql server 如何锁定函数?,sql-server,Sql Server,由于SQL Server不允许创建临时函数,是否有任何方法可以创建函数、对其设置锁并将此锁保留到当前会话结束 编辑: 我有一个有很多用户的网络数据库。当新用户连接到数据库时,将获取唯一的ConnectionId并将其分配给该用户的会话。在会话过程中,用户创建db对象,例如可以将其视为用于查看目的的临时功能。例如,连接ID为1的用户A希望看到参数X,连接ID为2的用户B希望看到参数Y。因此,用户A从HuGetTable_1创建函数SelectParameters,用户B从HuGetTable_2创

由于SQL Server不允许创建临时函数,是否有任何方法可以创建函数、对其设置锁并将此锁保留到当前会话结束

编辑:

我有一个有很多用户的网络数据库。当新用户连接到数据库时,将获取唯一的ConnectionId并将其分配给该用户的会话。在会话过程中,用户创建db对象,例如可以将其视为用于查看目的的临时功能。例如,连接ID为1的用户A希望看到参数X,连接ID为2的用户B希望看到参数Y。因此,用户A从HuGetTable_1创建函数SelectParameters,用户B从HuGetTable_2创建函数SelectParameters


我的目标是在用户a结束会话之前,保留HugetTable_1中的函数SelectParameter。我尝试在应用程序启动期间清除所有临时表,因此我需要锁定当前正在使用的函数。

一种方法是使用会话级别。这允许您使用sp_getapplock利用SQL Server锁定机制来管理所选资源名称上的锁定


使用会话级锁,当连接关闭时,锁将自动释放,或者您可以使用sp_releaseapplock事先释放它。

一种方法是使用会话级锁。这允许您使用sp_getapplock利用SQL Server锁定机制来管理所选资源名称上的锁定


使用会话级锁,当连接关闭时,锁将自动释放,或者您可以使用sp_releaseapplock事先释放它。

是的,它看起来就像我需要的一样。非常感谢。如果你发表评论作为回答,我会接受。你到底想达到什么目的?也许创建一个访问受限的新shema并将您的功能放在这个shema中会更好/更少侵入性。是的,它看起来像我需要的。非常感谢。如果你发表评论作为回答,我会接受。你到底想达到什么目的?也许创建一个访问受限的新shema并将您的功能放在这个shema中会更好/更少。。