私は SMO で遊んでいて、それを使用してデータベースの所有者を に変更しようとしましたsa
。コードは
# To simplify our discussing, let's say we have a function Get-SMOServer
$s = Get-SMOServer -Instance myserver\myinstance
$s.databases | ?{$_.owner -ne "sa"} | %{$_.setowner("sa", $true)}
この時点で、SSMS からデータベースの所有者を確認すると、所有者は既に変更されています。ただし、からチェックすると$s.databases
、次のようなことをするまで、古いデータがまだ取得されています。
$s.databases | %{$_.refresh()}
次に、から正しい結果を得ることができます$s.databases
。SMO オブジェクトを調べたところ、それらの多くにrefresh()
機能があることがわかりました。私の質問は、refresh()
オブジェクトを変更するたびに呼び出す必要がありますか? メンバーを持つすべてのオブジェクト タイプを見つける方法はrefresh()
?
ありがとう