有没有办法查询MySQL存储过程的返回列名及其数据类型?

时间:2014-01-23 05:00:36

标签: mysql .net stored-procedures sqldatatypes

有没有办法自动找出存储过程的返回列名及其数据类型?

假设我的存储过程如下:

CREATE PROCEDURE `user_countries`()
BEGIN
select m.ID, m.Name, c.Country
from Member AS m, Country AS c
where m.CountryId = c.ID;
END$$

这会返回一个如下所示的表:

ID    |  Name  |  Country
-------------------------
1       John      USA
2       Mary      Australia

我需要能够查询我的存储过程,以便我可以看到类似下面的内容

ColName   |    Data Type    
------------------------
ID        |    INT
Name      |    Varchar(50)
Country   |    Varchar(50)

我没有听说过类似于

表的存储过程可以做的任何事情
  

描述会员;

有什么建议吗?

PS。这只是一个简单的例子,我需要分析数百个表和数百个不同复杂度的存储过程。


ANSWER 感谢下面评论中的@BishnuPaudel。

我通过c#.net连接到数据库,因此方法是查询从存储过程返回的数据,而不是通过mysql命令访问它。

使用msdn库中的示例

http://msdn.microsoft.com/en-us/library/system.data.datatable.columns(v=vs.110).aspx

我添加了column.DataType print语句以查看列的数据类型。

    private void PrintValues(DataTable table) {
        foreach (DataRow row in table.Rows)
        {
            foreach (DataColumn column in table.Columns)
            {
                Console.WriteLine(column.DataType);
                Console.WriteLine(row[column]);
            }
        }
    }

再次感谢。

0 个答案:

没有答案