SQL Server ユーティリティから SQL Server のインスタンスを削除する方法

SQL Server ユーティリティから SQL Server のマネージ インスタンスを削除するには、次の手順を実行します。この手順では、UCP リスト ビューから SQL Server のインスタンスが削除されるため、SQL Server ユーティリティのデータ収集が停止します。SQL Server のインスタンスはアンインストールされません。

重要な注意事項重要

この手順を使用して SQL Server ユーティリティから SQL Server のインスタンスを削除する前に、削除するインスタンス上で SQL Server および SQL Server エージェントのサービスが実行されていることを確認します。

  1. SQL Server Management Studio のユーティリティ エクスプローラーで、[マネージ インスタンス] をクリックします。ユーティリティ エクスプローラーのコンテンツ ウィンドウで、SQL Server のマネージ インスタンスのリスト ビューを確認します。

  2. リスト ビューの [SQL Server インスタンス名] 列で、SQL Server ユーティリティから削除する SQL Server インスタンスを選択します。削除するインスタンスを右クリックし、[マネージ インスタンスの削除] をクリックします。

  3. SQL Server のインスタンスに、管理者特権のある資格情報を指定します。これには、[接続] をクリックし、[サーバーへの接続] ダイアログ ボックスで情報を確認して、[接続] をクリックします。[マネージ インスタンスの削除] ダイアログ ボックスにログイン情報が表示されます。

  4. 操作を実行する場合は [OK] をクリックします。操作を終了する場合は [キャンセル] をクリックします。

SQL Server ユーティリティから SQL Server のマネージ インスタンスを手動で削除する

この手順では、UCP リスト ビューから SQL Server のインスタンスが削除され、SQL Server ユーティリティのデータ収集が停止されます。SQL Server のインスタンスはアンインストールされません。

PowerShell を使用して、SQL Server ユーティリティから SQL Server のマネージ インスタンスを削除するには、このスクリプトで、次の操作を実行します。

  • サーバー インスタンス名で UCP を取得します。

  • SQL Server のマネージ インスタンスを SQL Server ユーティリティから削除します。

# Get Ucp connection
$UcpServerInstanceName = "ComputerName\InstanceName";
$UtilityInstance = new-object –Type Microsoft.SqlServer.Management.Smo.Server $UcpServerInstanceName;
$UcpConnection = new-object -Type Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection $UtilityInstance.ConnectionContext.SqlConnectionObject;
$Utility = [Microsoft.SqlServer.Management.Utility.Utility]::Connect($UcpConnection);

# Now remove the ManagedInstance from the SQL Server Utility
$ServerInstanceName = "ComputerName\InstanceName";
$Instance = new-object -Type Microsoft.SqlServer.Management.Smo.Server $ServerInstanceName;
$InstanceConnection = new-object -Type Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection $Instance.ConnectionContext.SqlConnectionObject;
$ManagedInstance = $Utility.ManagedInstances[$ServerInstanceName];
$ManagedInstance.Remove($InstanceConnection);

# Get Ucp connection
$UcpServerInstanceName = "ComputerName\InstanceName";
$UtilityInstance = new-object –Type Microsoft.SqlServer.Management.Smo.Server $UcpServerInstanceName;
$UcpConnection = new-object -Type Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection $UtilityInstance.ConnectionContext.SqlConnectionObject;
$Utility = [Microsoft.SqlServer.Management.Utility.Utility]::Connect($UcpConnection);

# Now remove the ManagedInstance from the SQL Server Utility
$ServerInstanceName = "ComputerName\InstanceName";
$Instance = new-object -Type Microsoft.SqlServer.Management.Smo.Server $ServerInstanceName;
$InstanceConnection = new-object -Type Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection $Instance.ConnectionContext.SqlConnectionObject;
$ManagedInstance = $Utility.ManagedInstances[$ServerInstanceName];
$ManagedInstance.Remove($InstanceConnection);

他のメソッドがすべて失敗した場合は、SQL Server Management Studio で次の Transact-SQL コマンドを使用して、SQL Server ユーティリティから SQL Server のマネージ インスタンスを削除します。どちらのスクリプトでも、ユーザーが sysadmin として実行していることを前提としています。

  1. SQL Server のマネージ インスタンスに接続し、次のストアド プロシージャを実行します。

    EXEC msdb.dbo.sp_sysutility_mi_remove;
    
    EXEC msdb.dbo.sp_sysutility_mi_remove;
    

    この時点では、SQL Server のマネージ インスタンスはまだユーティリティ エクスプローラーに表示されていますが、それ以上データを UCP にアップロードすることはありません。リスト ビューは淡色表示になります。実際には、インスタンスは SQL Server ユーティリティに登録されていないので、別の UCP に登録することができます。

  1. UCP に接続し、スクリプトを実行します。

    DECLARE @instance_id int;
    SELECT @instance_id = mi.instance_id
    FROM msdb.dbo.sysutility_ucp_managed_instances AS mi
    WHERE mi.instance_name = 'ComputerName\InstanceName';
    
    EXEC msdb.dbo.sp_sysutility_ucp_remove_mi @instance_id;
    
    DECLARE @instance_id int;
    SELECT @instance_id = mi.instance_id
    FROM msdb.dbo.sysutility_ucp_managed_instances AS mi
    WHERE mi.instance_name = 'ComputerName\InstanceName';
    
    EXEC msdb.dbo.sp_sysutility_ucp_remove_mi @instance_id;
    

SQL Server に格納されている SQL Server インスタンス名を正確に参照することが重要です。大文字と小文字を区別する SQL Server インスタンスの場合、@@SERVERNAME によって返された文字種を正確に使用して、インスタンス名を指定する必要があります。SQL Server のマネージ インスタンスのインスタンス名を取得するには、マネージ インスタンスで次のクエリを実行します。

select @@SERVERNAME AS instance_name

select @@SERVERNAME AS instance_name

この時点で、SQL Server のマネージ インスタンスは UCP から完全に削除されます。このインスタンスは、次に SQL Server ユーティリティのデータを更新すると、リスト ビューに表示されなくなります。この状態は、ユーザーが SSMS ユーザー インターフェイスで、マネージ インスタンスの削除操作を正常に完了した場合と同じです。