Я думаю, что вы не уверены в кластеризации SQL - она не позволяет вам разбивать таблицы по нескольким серверам по-другому, чем если бы вы помещали разные таблицы в разные базы данных на одном сервере. Кластеризация используется для горячего аварийного переключения и резервирования.
Тем не менее, я думаю, что вижу, что вы спрашиваете - если вы хотите разделить базу данных между различными физическими серверами, проще всего было бы иметь VIEW, который объединяет эти таблицы вместе в одном месте, а затем Вы можете запросить и отфильтровать это. SQL Server достаточно умен (если имеются индексы и статистика для принятия решения), чтобы отправлять запрос в нужное место, если вы выбираете что-то из объединяющего представления.
Например, скажем, у вас есть два сервера - SERVER1 и SERVER2, у каждого из которых есть база данных - DATABASE - и у каждого сервера есть таблица - TABLE - с половиной данных в ней (между двумя серверами у вас есть каждая строка) , Просто создайте представление где-нибудь - либо сервер, либо где-то еще целиком - которое выглядит следующим образом, а затем добавьте связанные серверы для SERVER1 и SERVER2, которые позволяют SQL Server получать данные из удаленного расположения:
CREATE VIEW SomeView
AS
SELECT *
FROM SERVER1.DATABASE..TABLE
UNION
ALL
SELECT *
FROM SERVER2.DATABASE..TABLE
Таким образом, у вас есть одно место для запроса, и вы всегда будете получать данные с любого сервера, а не запрашивать каждый сервер отдельно. Вы можете сделать это, даже если вы не хотите разделять отдельные таблицы - просто создайте представление для каждой таблицы, которую вы хотите переместить, и попросите представление проверить, на каком сервере таблица фактически находится.
Если я пропустил ваш фактический вопрос, пожалуйста, оставьте комментарий и некоторые разъяснения, и я буду рад добавить еще некоторые детали.