1

実行時にクエリを構築し、sp_executesql で実行することによってのみ達成できるタスクがあります。結果は、関数の結果として返す必要があるブール値 (0/1 整数) でなければなりません。

SPの出力をキャプチャする唯一の方法は、「INSERT INTO [table] EXECUTE [sp]」クエリですが、関数はこれを禁止しています。

これを克服する方法はありますか?

4

1 に答える 1

3

sp_executesqlを使用すると、パラメーターを渡すことができますが、パラメーターを出力用として宣言することもできます。あまり動的ではないが、出力パラメータがどのように機能するかを示すこの単純な例を見てくださいsp_executesql

declare @sql nvarchar(max)
declare @user sysname

select @sql = 'SELECT @user = SYSTEM_USER'

exec sp_executesql @sql, N'@user sysname OUTPUT', @user OUTPUT

select @user
于 2010-05-10T10:10:47.027 に答える