1

テーブル値関数の定義で@@REMSERVERを使用することを望んでいました。しかし、SQLServerの次のバージョンでは廃止されると思います。リモート[server\instance]のIDを使用して、結果の行セットに影響を与える方法に関するアイデアはありますか?

例:サーバー上[MAIN]

create view dbo.PartitionedUsers as
Select * from ((Users u inner join Groups g on u.groupid = g.id) 
    inner join servermap s on s.id = g.serverid and s.servername = @@REMSERVER)

サーバー上[GROUP1]

CREATE SYNONYM dbo.Users as [MAIN].[catalog].[dbo].[PartitionedUsers]

サーバー上[GROUP2]

CREATE SYNONYM dbo.Users as [MAIN].[catalog].[dbo].[PartitionedUsers]

サーバーGROUP1で評価した場合:

SELECT * from dbo.Users 

そのサーバーにマップされたグループに関連する行のみが含まれます。同様に、他のサーバーについてはGROUP2、...、GROUPN

ta

4

0 に答える 0