web-dev-qa-db-ja.com

sp_dropserverとsp_addserverが機能しない

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

11
scarpacci

これはオンラインの本からです:

@@ SERVERNAME関数とSERVERPROPERTY関数のSERVERNAMEプロパティは、同様の形式の文字列を返す場合がありますが、情報は異なる場合があります。 SERVERNAMEプロパティは、コンピューターのネットワーク名の変更を自動的に報告します。

対照的に、@@ SERVERNAMEはそのような変更を報告しません。 @@ SERVERNAMEは、sp_addserverまたはsp_dropserverストアドプロシージャを使用してローカルサーバー名に加えられた変更を報告します。

そして最初のコメントは正しいです。 SQLをデフォルトのインスタンスに変更するには、SQLを再インストールする必要があります。

名前付きインスタンスでマシン名を変更する場合は、BOLごとに次のように使用する必要があります。

sp_dropserver <'old_name\instancename'>
GO
sp_addserver <'new_name\instancename'>, local
GO
7
RThomas

はい、SQLサーバーの再起動は機能しました。これで、両方の名前が正しく表示されます。

SELECT @@SERVERNAME 

SELECT serverproperty('ServerName') 
3
Paul