Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để tôi có thể dễ dàng sử dụng TVP với một máy chủ được liên kết?

Được rồi, về cơ bản thì giải pháp là thế này (loại đó tự động hóa một nửa vấn đề):

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật nhiều cột trong SQL

  2. Chúng tôi có thể xóa tệp vật lý khỏi máy chủ khi tôi xóa mục nhập tương ứng khỏi cơ sở dữ liệu không?

  3. tại sao varchar (max) không lưu trữ dữ liệu hơn 8000 charaters

  4. Bộ xử lý truy vấn không thể tạo kế hoạch truy vấn do các gợi ý được xác định trong truy vấn này. Gửi lại truy vấn và không sử dụng SET FORCEPLAN

  5. Làm cách nào để cấp cho chủ sở hữu cơ sở dữ liệu (DBO) quyền LẮP RÁP TRUY CẬP BÊN NGOÀI?