Поделиться через


sp_copysubscription (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Копирует базу данных подписки, которая извлекает подписки, но не выполняет отправку подписок. Могут быть скопированы только те базы данных, которые состоят из одного файла. Эта хранимая процедура выполняется на подписчике в базе данных подписки.

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Для публикаций слиянием, секционированных с помощью параметризованных фильтров, рекомендуется использовать новые возможности секционированных снимков, которые упрощают инициализацию большого числа подписок. Дополнительные сведения см. в статье Создание моментального снимка для публикации слиянием с параметризованными фильтрами. Для публикаций, которые не секционированы, можно инициализировать подписку с резервной копией. Дополнительные сведения см. в статье Инициализация подписки на публикацию транзакций без моментального снимка.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_copysubscription
    [ @filename = ] N'filename'
    [ , [ @temp_dir = ] N'temp_dir' ]
    [ , [ @overwrite_existing_file = ] overwrite_existing_file ]
[ ; ]

Аргументы

[ @filename = ] N'filename'

Строка, указывающая полный путь, включая имя файла, в который сохраняется копия файла данных (.mdf). @filename — nvarchar(260), без значения по умолчанию.

[ @temp_dir = ] N'temp_dir'

Имя каталога, содержащего временные файлы. @temp_dir — nvarchar(260) с значением по умолчаниюNULL. Если NULLиспользуется каталог данных SQL Server по умолчанию. Каталог должен включать достаточно свободного места для хранения файла с размером, равным суммарному размеру всех файлов баз данных подписчика.

[ @overwrite_existing_file = ] overwrite_existing_file

Необязательный логический флаг, указывающий, следует ли перезаписать существующий файл того же имени, указанного в @filename. @overwrite_existing_file бит с значением по умолчанию0.

  • Если 1он перезаписывает файл, указанный @filename, если он существует.
  • Если 0хранимая процедура завершается ошибкой, если файл существует, и файл не перезаписывается.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_copysubscription используется во всех типах репликации для копирования базы данных подписки в файл в качестве альтернативы применению моментального снимка на подписчике. База данных должна быть настроена только для поддержки подписок на вытягивание. Пользователи с соответствующими разрешениями могут создавать копии базы данных подписки, а затем отправлять электронную почту, копировать или транспортировать файл подписки (.msf) другому подписчику, где затем его можно прикрепить как подписку.

Размер копируемой базы данных подписки должен быть меньше 2 ГБ.

sp_copysubscription поддерживается только для баз данных с клиентскими подписками и не может выполняться, если база данных имеет серверные подписки.

Разрешения

Могут выполняться sp_copysubscriptionтолько члены предопределенных ролей сервера sysadmin.