繁体   English   中英

为什么通过SMO和SQL Server Provider在表上看到不同的扩展属性?

[英]Why am I seeing different Extended Properties on a table via SMO vs. the SQL Server Provider?

我在表上使用名称“ MS_Description”设置扩展属性的值。 然后,我尝试通过PowerShell检索此文件。

我的第一种方法是使用PowerShell SQL Server Provider:

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 Provider之前会有一个延迟,但是半小时后,它仍然显示相同的旧值。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM