nvarchar パラメータを持つストアド プロシージャがあります。OPENROWSET を使用して返されたテーブルを取得したい。しかし、次のコードを使用すると、結果が正しくなくなります
Declare @ID int
Declare @sql nvarchar(max)
Declare @p1 nvarchar(8)
Set @ID=1
Set @sql='SELECT *
FROM OPENROWSET(
''SQLNCLI'',
''DRIVER={SQL Server};'',
''EXEC dbo.usp_test @p1 =''''' + @p1 + ''''')'
Exec(@sql)
OPENROWSET はクエリを VARCHAR に変換し、プロシージャを正しく実行しません。OPENROWSET は私のコードを次のように実行するようです:
exec dbo.usp_test @p1='????????'
したがって、結果は正しくありません。問題を解決するための OPENROWSET のオプションはありますか?