変更できないストアド プロシージャがあります。ストアド プロシージャを書き直すか、ストアド プロシージャ内からクエリを関数に追加することを提案する前に、これを強調します。
この手順は、アクセスが非常に制限されている別のデータベースにあります。だから私がやりたいことは、ストアド プロシージャをクエリ、関数、またはストアド プロシージャにラップして、返されたデータから上位 N 行を選択できるようにすることです。
理想的には、次のようなものを呼び出すことができます...
DECLARE @ForeName varchar(50)
DECLARE @Surname varchar(50)
DECLARE @DOB datetime
DECLARE @Sex varchar(1)
SET @Surname = 'Smith'
SELECT TOP 10 (
EXECUTE @RC = [Some_Other_Database].[dbo].[sp_search_demographics]
,@ForeName
,@Surname
,@DOB
,@Sex
)
GO
編集:(ストアドプロシージャは、行数と行数を含むパラメーターを返すことにも注意してください)
edit2: MS SQL Server 2008 R2 を使用していることにも注意してください。
これが決して正しくないことは承知していますが、このようなことを行う方法はありますか? あいまいなクエリの場合、現時点では数千行が返されています。これにより、サーバーが大幅に遅くなります。
私は解決策のためにいくつかのグーグルとスタックオーバーフローを行いましたが、残念ながら私が見つけることができるすべてのアドバイスは、ストアドプロシージャの変更に関するものでした.