Wie gewünscht, und nicht zu wissen, was Ihre SP tut/Rückgabe:
Denken Sie an einen CROSS APPLY wie ein Unterprogramm
Beispiel 1:
Select A.MemberGroupID
,B.*
From [dbo].[RoleMembers] A
Cross Apply [dbo].[fn_GroupMembers_HasMembershipe](1, A.MemberGroupID) B
WHERE RoleDefID = 1
Beispiel 2 :
Das folgende wird eine getrennte Zeichenfolge nach ID aufteilen und deaktivieren
Declare @YourTable table (ID int, Value varchar(max))
Insert Into @YourTable values
(1,'New York;Albany;Providence'),
(2,'Atlanta;Kinderhook')
Select A.ID
,B.*
From @YourTable A
Cross Apply (
Select RetSeq = Row_Number() over (Order By (Select null))
,RetVal = LTrim(RTrim(B.i.value('(./text())[1]', 'varchar(max)')))
From (Select x = Cast('<x>' + replace((Select replace(A.Value,';','§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml).query('.')) as A
Cross Apply x.nodes('x') AS B(i)
) B
Returns
ID RetSeq RetVal
1 1 New York
1 2 Albany
1 3 Providence
2 1 Atlanta
2 2 Kinderhook
Verwenden Schleife und Benutzer die Abfrage –
ich möchte nicht Cursor verwenden oder für loop.I wollen mit CTE –
implementieren Was macht der SP? Kann es ein TVF sein? –