gpt4 book ai didi

sql-server - SQL Server SMO,应该在每次修改内容时调用刷新吗?

转载 作者:行者123 更新时间:2023-12-03 00:19:33 25 4
gpt4 key购买 nike

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

谢谢

最佳答案

您可以查看SMO组件。我正在使用随2008 R2一起提供的SMO:

$assm = add-type -AssemblyName "Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" -EA Stop -PassThru

$assm | %{$hasRefreshMethod = $null; $hasRefreshMethod = $_.GetMethods() | ?{$_.name -eq "Refresh"}; new-object psobject -property @{Name=$_.Name; HasRefreshMethod=$($hasRefreshMethod -ne $null)}}

关于sql-server - SQL Server SMO,应该在每次修改内容时调用刷新吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com