【发布时间】:2013-02-26 21:55:51
【问题描述】:
我在 mssql 中遇到了存储过程 (SP) 的问题。我有一张表,其中一列包含一个 SP 名称,我要做的是获取该 SP 名称并在我的 SP 中执行该 SP。
所以我做了什么:
- 我有一个 SP - 好的
- 用 SP 的名称声明一个变量,该变量将获取表中的 SP 名称和 SP - 好的
.
DECLARE @rs varchar(max)
DECLARE @sql varchar(max) = N'usp_GetSP)'
EXECUTE sp_executesql @sql, @rs output
EXECUTE @rs
这里我知道当我执行 EXECUTE sp_executesql @sql 时我得到了 SP 名称,但我不确定 @rs。我收到此错误:
消息 214,级别 16,状态 2,过程 sp_executesql,第 1 行过程 需要类型为“ntext/nchar/nvarchar”的参数“@statement”。消息 2812,级别 16,状态 62,第 4 行找不到存储过程 ''。
- 执行我返回的那个 SP - 这就是问题所在
这是一个具有三个 SELECTstatements 和 UNIONthem 的 SP,这个 SP 是我开始工作需要的第三个 UNION(最后一个 SELECT 语句)。
有人知道我该怎么做吗?
【问题讨论】:
标签: sql-server stored-procedures