gpt4 book ai didi

sql-server - 将扩展属性附加到存储过程结果集

转载 作者:行者123 更新时间:2023-12-03 02:30:35 24 4
gpt4 key购买 nike

我正在尝试将元数据附加到存储过程的结果集。该过程将返回一个表,或者作为 SELECT 查询的结果,或者在过程本身中构建的临时表。我想用附加信息来装饰它的列,以模拟 .NET 的属性。然后,当使用 ADO.NET 执行该过程时,我想评估此元数据。

据我所知,这并不容易做到。我也许可以通过创建一个全局临时表(## 前缀)来解决这个问题,然后在 tempdb 中手动将扩展属性附加到它。有什么想法吗?

最佳答案

为什么不从 SP 返回 2 个结果集?一种是实际结果集,即您现在拥有的结果集,另一种是元数据。

元数据表可以是在SP中创建的表变量,其结构如下:

DECLARE @ResultsMetadata AS TABLE
(
Id INT NOT NULL IDENTITY(1,1),
ColumnName VARCHAR(128) NOT NULL,
ColumnMetadata VARCHAR(128) NOT NULL
)

您可以在我假设的 CLR 中阅读此内容(因为标签)。使用 SqlDataReader 可以轻松读取多个结果集。如果您还需要在 SQL 中进一步处理结果,那么也许您可以切换到具有两个顶级元素(主结果集和元数据)的 XML 输出。

编辑

实际上只是注意到您正在使用 ADO.NET 阅读本文,因此您不应该对多个结果集有任何问题。您可以使用SqlDataReader.NextResult让读者前进到第二个(元数据)结果集。

关于sql-server - 将扩展属性附加到存储过程结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24624155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com