【发布时间】:2015-06-01 22:23:36
【问题描述】:
当我想获得stored procedure 的定义(在 SQL Server 中)时,我使用 SQL Server Management Studio。
我有时会运行“sp_helptext”来输出存储过程的定义。
链接:https://msdn.microsoft.com/en-us/library/ms176112.aspx
简而言之,我想要一个简单的 html 弹出窗口,它将任何存储过程的定义输出到文本。
下面的 asp 代码成功连接到我的数据库,但我没有得到任何输出。
<%
' .......
sql = "exec sp_helptext 'some_ProcName_Here'"
objRs.open sql, objConn
Text=objRs("Text")
response.write(Text)
%>
我还尝试创建一个带有 1 个参数的新存储过程,它将执行 sp_helptext。
<%
' .......
sql = "exec See_Proc_Definition @ProcName=some_ProcName_Here"
objRs.open sql, objConn
Text=objRs("Text")
response.write(Text)
%>
这些都没有显示任何内容,但我也没有收到任何返回的错误。 谁能看到我做错了什么?
【问题讨论】:
-
这里的问题是
sp_helptext每行生成一行,因此您需要Do While Not objRs.EOF并使用objRs.MoveNext将光标移动到每一行。我的猜测是您尝试显示的定义包含一个空白的第一行。 -
如果这是真的,那么第一行应该显示? OP 说没有显示?
-
这是一个存储过程,但它被调用就像是一个查询
-
@WhirlMind 定义必须包含一个空行。
-
@Mackan True,但这是完全可行的,尽管我个人会使用
ADODB.Command来执行它。
标签: sql-server stored-procedures asp-classic