単純な SELECT ステートメントを使用して結果セットを CSV 文字列として返すストアド プロシージャを作成したいと考えています。したがって、基本的な考え方は、ユーザー入力から sql ステートメントを取得し、EXEC(@stmt) を使用して実行し、カーソルを使用して結果セットをテキストに変換することです。ただし、SQLServer では次のことが許可されていません。
- select * from storedprocedure(@sqlStmt)
- EXEC(@sqlStmt)を使用したUDF
#tempTable EXEC(@sqlStmt) に挿入しようとしましたが、これは機能しません (エラー = "無効なオブジェクト名 #tempTable")。
私は立ち往生しています。この問題について少し説明していただけますか?
どうもありがとう
編集:
実際には、出力 (CSV 文字列など) は重要ではありません。問題は、EXEC によって返される結果セットにカーソルを割り当てる方法がわからないことです。SP と UDF は Exec() では機能しませんが、値を挿入する前に一時テーブルを作成することは、入力ステートメントを知らなければ不可能です。
OPENQUERY を考えましたが、変数をパラメーターとして受け入れません。