mssql のストア プロシージャ (SP) に問題があります。私が持っているのは、列の1つにSP名が含まれているテーブルであり、そのSP名を取得してSP内でそのSPを実行する必要があります。
だから私がやったこと:
- 私はSPを持っています - わかりました
- テーブル内の SP から SP 名を取得する SP の名前で変数を宣言します - OK
.
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を実行してください - ここに問題があります
これは 3 つのSELECT
ステートメントを含む SP でUNION
あり、この SP は作業に必要な3 番目の 1 秒UNION
(最後のステートメント) です。SELECT
どうすればこれができるか知っている人はいますか?