0

型のパラメーターを受け取るストアド プロシージャがありますvarchar(max)。ユーザーは、単一のパラメーターと複数のパラメーター (コンマで区切られた) を渡すことができる必要があります。ストアド プロシージャは、単一のパラメーターが渡された場合は単一の値を出力し、複数のパラメーターが渡された場合は複数の値を出力する必要があります。

たとえば、私のプロシージャ名はsp_printvalue. したがって、この手順を単一のパラメーターで実行すると

exec sp_printvalue A

A を出力する必要があり、複数のパラメーターで実行すると

exec sp_printvalue A,B,C,D

すべての値 ABC D を出力する必要があります。

このタスクを達成するのを手伝ってください。前もって感謝します。

4

1 に答える 1

0

xml パラメーターを渡し、ノード メソッドを使用してそれを読み取ることができます。これが例です

create procedure usp_PrintValue
@param xml
as
set nocount on;

declare @result varchar(100)

select
    @result = coalesce(@result + ', ', '') + tab.col.value('@Value', 'char(1)')
from @param.nodes('/Parameter') as tab(col)

print @result
go

そして実行

declare @a xml

set @a = N'
    <Parameter Value="A"/>
    <Parameter Value="B"/>
    <Parameter Value="C"/>
    <Parameter Value="D"/>
'

exec usp_PrintValue @a
于 2013-09-03T08:44:30.810 に答える