SQL Server 2008 R2 支持 CLR 集成,其中 .NET 模块可以在数据库中注册,并且可以通过 SQL 存储过程、函数、触发器来调用。我们能够开发此类 .NET 模块并与 SQL Server 集成。
但是我们有一个不同的要求,它需要拦截发送到 SQL Server 的 SELECT 查询(从任何 SQL 客户端)并调用 .NET 模块并将查询参数(WHERE 子句)传递给它。
例如,如果我们在数据库中有一个表 (VarInfo),它有两列 VarID (string) 和 Value (float)。现在假设该表包含 100 个变量的记录,变量为 VarID:V001 到 V100。但是所有记录的 Value 列都是空的。价值数据不存储在数据库中。如果我们有一个 SQL 选择查询:
SELECT Value from VarInfo where VarID = 'V001'
那么 SQL Server 应该调用 .NET 模块并传递 VarID。.NET 模块应从某个外部源获取变量 Value。然后它将值返回给 SQL Server。SQL Server 应该将该值作为查询输出/结果返回。
请告知以上在 SQL Server 2008 R2 中的可行性。
谢谢,