sp_dropserver и sp_addserver не работают - PullRequest
11 голосов
/ 11 мая 2011

Я использую SQL Server Express 2008 R2 и хотел изменить имя экземпляра с «имя компьютера» \ SQLEXPRESS2008R2 на просто «имя компьютера». Я побежал:

sp_dropserver 'old_name'

go

sp_addserver 'new_name', 'local'

go

Затем перезапустил службу SQL. Теперь, когда я смотрю на

Select @@SERVERNAME --this is correct

Но это не правильно?

Select serverproperty('ServerName') --This still shows old name

Так что, когда я пытаюсь подключиться к своему экземпляру через SSMS, мне все равно нужно подключиться, используя старое имя экземпляра вместо нового, которое я только что применил? Что я делаю неправильно? Почему новое имя не принимает?

Спасибо

S

Ответы [ 2 ]

7 голосов
/ 11 мая 2011

Это из книг в Интернете:

Хотя функция @@ SERVERNAME и свойство SERVERNAME функции SERVERPROPERTY могут возвращать строки с похожими форматами, информация может быть разной.Свойство SERVERNAME автоматически сообщает об изменениях в сетевом имени компьютера .

Напротив, @@ SERVERNAME не сообщает о таких изменениях.@@ SERVERNAME сообщает об изменениях, внесенных в имя локального сервера с помощью хранимой процедуры sp_addserver или sp_dropserver.

И первый комментарий верен.Вам придется переустановить SQL, чтобы изменить его на экземпляр по умолчанию.

на BOL, если вы меняете имя машины с именованными экземплярами, которые вы должны использовать следующим образом:

sp_dropserver <'old_name\instancename'>
GO
sp_addserver <'new_name\instancename'>, local
GO
3 голосов
/ 07 мая 2012

Да, перезагрузка сервера SQL сработала. теперь оба имени отображаются правильно.

SELECT @@SERVERNAME 

SELECT serverproperty('ServerName') 
...