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
これはオンラインの本からです:
@@ 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
はい、SQLサーバーの再起動は機能しました。これで、両方の名前が正しく表示されます。
SELECT @@SERVERNAME
SELECT serverproperty('ServerName')