我使用名称" MS_Description"设置扩展属性的值。在桌子上。我然后尝试通过PowerShell检索它。
我的第一种方法是使用PowerShell SQL Server提供程序:
gci SQLSERVER:\SQL\localhost\DEFAULT\Databases\MyDatabase\Tables\dbo.MyTable\ExtendedProperties | Select -exp Value
返回旧值。
接下来,我尝试通过SMO检索它:
Add-Type -AssemblyName "Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
$server = New-Object Microsoft.SqlServer.Management.Smo.Server "localhost"
$server.Databases["MyDatabase"].Tables["MyTable"].ExtendedProperties[0].Value
这会正确返回更新后的值。
为何与众不同?起初,我怀疑在SQL Server提供程序更新之前有一段延迟,但半小时后,它仍然显示相同的旧值。
答案 0 :(得分:0)
经过太长时间的调查,我发现我只需要先调用Refresh()方法:
$path = "SQLSERVER:\SQL\localhost\DEFAULT\Databases\MyDatabase\Tables\dbo.MyTable\ExtendedProperties"
(gci $path).Refresh()
gci $path | Select -exp Value