我对 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 - 这就是问题所在
这是一个包含三个SELECT
语句的 SP,并且这个 SP 是我需要开始工作UNION
的第三秒UNION
(最后一个语句)。SELECT
有谁知道我该怎么做?