为什么我通过SMO与SQL Server提供程序在表上看到不同的扩展属性?

时间:2014-01-30 23:27:07

标签: powershell sql-server-2008-r2

我使用名称" 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提供程序更新之前有一段延迟,但半小时后,它仍然显示相同的旧值。

1 个答案:

答案 0 :(得分:0)

经过太长时间的调查,我发现我只需要先调用Refresh()方法:

$path = "SQLSERVER:\SQL\localhost\DEFAULT\Databases\MyDatabase\Tables\dbo.MyTable\ExtendedProperties"
(gci $path).Refresh()
gci $path | Select -exp Value