我正在玩 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()
成员的所有对象类型?
谢谢