0

我编写了一个包含多个方法的 CLR 类,这些方法在 SQL Server 2005 数据库中作为函数链接。当其中几个函数在一个事务或连接的范围内使用时,我需要在事务或连接关闭时自动执行另一个来清理一些东西(现在哪个时间都好,稍后我会决定哪个是最好的)。我认为从另一个新的 CLR 函数接收事件可以做到,但我不知道如何实现。

谁能告诉我有关模块、文档或其他内容的信息,这些信息可以帮助我了解如何在 CLR 类中接收事务或连接关闭事件,或者在这些事件发生时如何执行特定功能?

编辑:我创建了一个 C# 类,其中包含一个静态成员来存储值,以及两个静态方法来设置和获取成员的值。编译为 DLL 并将其作为程序集添加到 SQL Server 2005。方法作为 CLR 函数添加到同一服务器。结合不同的连接和事务来交替获取和设置值,让我看到静态成员没有被重置。我希望有一种自动方法将存储的值包含在一个事务或连接中(或清理静态成员),因此每个存储的值不会干扰另一个

4

1 回答 1

0

SQLCLR 与在 SQL Server 中运行的 CLR 一样,仅当您从函数、过程、聚合或 CLR 类型的方法调用 CLR 代码时才运行代码。CLR 代码无法在调用之间保持状态,因此没有任何可能的理由来运行清理代码。事务提交、连接关闭模块卸载或任何类似的事情没有回调。它们不是必需的,也不支持。

于 2010-05-09T03:30:20.430 回答