1

我可以在 SQL Server Management Studio 中执行存储过程,但我无权查看它的定义。

如何确定每个返回列的数据类型?

我可以看到输入参数类型,但看不到返回行的类型。

4

2 回答 2

0

我可能把你的问题弄错了,但我会试着回答这个问题,也许这不是一个解决方案,但至少是一个尝试......

您可以使用编程语言并调用存储过程,例如Java。并使用ResultSetMetaData.

 ResultSet rs = ...
 ResultSetMetaData rsmd = rs.getMetaData();
 int numberOfColumns = rsmd.getColumnCount();
 String columnLabel = rsmd.getColumnLabel(1);
 String columnName = rsmd.getColumnName(1);
 int columnType = rsmd.getColumnType(1);
 String columnTypeName = getColumnTypeName(1);

 etc

这当然是因为我假设您无权以任何方式检查存储过程(无权访问系统表等。但您拥有的唯一访问权限是您可以运行 SP)。

http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSetMetaData.html

于 2013-09-14T20:06:08.097 回答
-1

此表“sys.parameters”将为您提供有关 SP 的所有详细信息。

谢谢 !

于 2013-09-14T20:01:02.903 回答