Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment puis-je utiliser facilement les TVP avec un serveur lié ?

Ok, donc fondamentalement la solution est la suivante (ce genre d'automatise la moitié du problème) :

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