Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich TVPs einfach mit einem verknüpften Server verwenden?

Ok, also im Grunde ist die Lösung dies (das automatisiert die Hälfte des Problems):

declare @tvpVal_string nvarchar(max) = 'declare @tvpVal myTVPType;'
set tvpVal_string += isnull(stuff((select ';insert into @tvpVal values('+...your values...+')' as [text()] from @tvpVal from xml path('')),1,1,'')+';','');

declare @sql nvarchar(max) = tvpVal_string + 
'exec myProc @[email protected],
             @[email protected]'

exec [REMOTESRV].DB..sp_executesql @sql,'@OtherVal type',@OtherVal