[英]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.