ストアド プロシージャの呼び出し
exec spBatchRequestsForRescreening @GuidList='''A2C4B17A-57A7-49A9-97A0-0000070D92F3'',''945FA383-17D4-4CCB-B8FD-00000A40E2DC'''
「文字列からuniqueidentifierへの変換時に変換に失敗しました」で失敗します。
ストアド プロシージャ
ALTER PROC [dbo].[spBatchRequestsForRescreening] (@GuidList varchar(8000) )
AS BEGIN
select *
from DeniedPartyTransactions.dbo.DpsRequest
with (nolock)
where C1_PK in ( @GuidList )
END
以下のステートメントは動作します。一重引用符で囲まれた Guid の CSV をマクロ置換する方法はありますか。
select * from DpsRequest
where c1_PK in ( 'A2C4B17A-57A7-49A9-97A0-0000070D92F3','945FA383-17D4-4CCB-B8FD-00000A40E2DC' )
アップデート:
以下は機能します。多分もっと良いものがありますか?
ALTER PROC [dbo].[spBatchRequestsForRescreening] (@GuidList varchar(7000) )
AS BEGIN
DECLARE @SQL varchar(8000)
SET @SQL =
'select *
from DeniedPartyTransactions.dbo.DpsRequest
with (nolock)
where C1_PK in (' + @GuidList + ')' ;
EXEC(@SQL)
END