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


sp_addserver (Transact-SQL)

Область применения: SQL Server

Определяет имя локального экземпляра SQL Server. При переименовании компьютера, на котором размещен SQL Server, используйте sp_addserver для информирования экземпляра SQL Server ядро СУБД нового имени компьютера. Эта процедура должна выполняться во всех экземплярах ядро СУБД, размещенных на компьютере.

Невозможно изменить имя экземпляра ядро СУБД. Чтобы изменить имя экземпляра именованного экземпляра, установите новый экземпляр с нужным именем, отсоедините файлы базы данных от старого экземпляра, подключите базы данных к новому экземпляру и удалите старый экземпляр. Кроме того, можно создать псевдоним клиента на клиентском компьютере, перенаправляя подключение к другому серверу и имени экземпляра или <server>:<port> комбинации, не изменяя имя экземпляра на серверном компьютере.

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

Синтаксис

sp_addserver
    [ @server = ] N'server'
    [ , [ @local = ] 'LOCAL' ]
    [ , [ @duplicate_ok = ] 'duplicate_OK' ]
[ ; ]

Аргументы

[ @server = ] N'server'

Имени сервера. Имена серверов должны быть уникальными и соответствовать правилам для имен компьютеров Windows, хотя пробелы не допускаются. @server — sysname, без значения по умолчанию.

Если на компьютере установлено несколько экземпляров SQL Server, экземпляр работает так же, как на отдельном сервере. Укажите именованный экземпляр, ссылаясь на @server как <servername>\<instancename>.

[ @local = ] 'LOCAL'

Указывает, что сервер добавляется в качестве локального сервера. @local — varchar(10) с значением по умолчаниюNULL. Указание @local как LOCAL определяет @server в качестве имени локального сервера и приводит @@SERVERNAME к возврату значения @server функции.

Программа установки SQL Server устанавливает эту переменную в имя компьютера во время установки. По умолчанию имя компьютера — это способ подключения пользователей к экземпляру SQL Server без дополнительной настройки.

Локальное определение действует только после перезапуска ядро СУБД. В каждом экземпляре ядро СУБД можно определить только один локальный сервер.

[ @duplicate_ok = ] 'duplicate_OK'

Указывает, допустимо ли совпадение имен серверов. @duplicate_ok — varchar(13), с значением по умолчаниюNULL. @duplicate_ok может иметь только значение duplicate_OK или NULL. Если @duplicate_ok указан и имя сервера, которое добавляется, уже существует, ошибка не возникает. Если именованные параметры не используются, необходимо указать @local .

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

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

Замечания

Чтобы задать или очистить параметры сервера, используйте sp_serveroption.

sp_addserver нельзя использовать внутри определяемой пользователем транзакции.

Использование sp_addserver для добавления удаленного сервера прекращено. Вместо этого используйте хранимую процедуру sp_addlinkedserver .

Использование sp_addserver для изменения имени локального сервера может вызвать нежелательные эффекты или неподдерживаемые конфигурации при использовании групп доступности или репликации.

Разрешения

Требует членства в предопределенной роли сервера setupadmin .

Примеры

Следующий пример изменяет запись ядро СУБД для имени компьютера, на котором размещен SQL ServerACCOUNTS.

EXEC sp_addserver 'ACCOUNTS', 'local';