Предоставление новой схемы из существующей - PullRequest
0 голосов
/ 30 марта 2012

У меня есть шаблонная схема (dbo) в SqlServer 2008 R2, которую мы используем в качестве главной схемы для данных каждого клиента.Как я могу легко "скопировать" все объекты dbo в новую схему?

ALTER SCHEMA [target] TRANSFER [source].[objectname] удаляет исходный исходный объект, и он мне нужен для будущих копий.

У меня есть процесс сборки VSTSDB, так что я могу взять его вывод и найти / заменить на dbo, но это похоже на процесс сборки, а не на процесс подготовки.

Похоже, этотипичный процесс в мире шардинга, но я пока не нахожу много инструментов для этого процесса.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

Одним из способов является использование переменных sqlcmd для имени схемы и других значений для каждого клиента, тогда вам просто нужно установить переменные при запуске ваших сценариев DDL.

0 голосов
/ 31 марта 2012

К сожалению, прямого пути нет.Вы можете использовать это:

 SELECT 'ALTER SCHEMA NewSchema TRANSFER dbo.'+name
    FROM sys.objects
    WHERE type IN ('U','V','P','Fn')
    AND SCHEMA_NAME(SCHEMA_ID) = 'dbo'
...