SMO存储过程发现

时间:2012-06-22 16:41:35

标签: c# sql-server-2008 stored-procedures smo

我正在尝试找出任何SQL Server 2008存储过程的输入和输出。

我正在使用SMO连接到数据库实例,然后我抓住所有数据库和每个数据库存储过程。

目前,我可以获取StoredProcedure对象并获取输入参数,但我无法找到结果。

我知道我可以使用ExecuteWithResults传递我的存储过程来运行它,但我怎样才能得到结果?

另外,我如何传递参数?我是否构建了一个exec命令并将其传递给了?

编辑:我发现我需要使用SET FMTONLY ON,但我究竟如何将其传递给ExecuteWithResults?

1 个答案:

答案 0 :(得分:0)

想出来。使用StringCollection构建字符串集合。确保添加(“SET FMTONLY ON”),这样您就不会影响任何实际数据。使用存储过程Parameters集合中的所有参数构建一个exec命令,然后对该集合执行executeWithResults。这将返回一个DataSet []。在您在StringCollection上添加exec命令的数据集数组中获取相同的索引。从这里,您可以获得结果表集,然后是其列,其中包含所有列名称及其数据类型。