C# 如何使用SMO获取和设置SQL Server 2008表的description属性?

C# 如何使用SMO获取和设置SQL Server 2008表的description属性?,c#,sql-server,smo,C#,Sql Server,Smo,如何使用Microsoft.SqlServer.Management.Smo获取和设置SQL Server 2008表的description属性?我已经看过关于如何在列级而不是表级执行此操作的文档。记不得了:说明是否在扩展属性中?如果是,TableViewTableTypeBase.ExtendedProperties将为您提供说明(由Microsoft.SqlServer.Management.Smo.Table继承)记不得:说明是否在扩展属性中?如果是这样,TableViewTableTy

如何使用Microsoft.SqlServer.Management.Smo获取和设置SQL Server 2008表的description属性?我已经看过关于如何在列级而不是表级执行此操作的文档。

记不得了:说明是否在扩展属性中?如果是,TableViewTableTypeBase.ExtendedProperties将为您提供说明(由Microsoft.SqlServer.Management.Smo.Table继承)

记不得:说明是否在扩展属性中?如果是这样,TableViewTableTypeBase.ExtendedProperties将为您提供说明(由Microsoft.SqlServer.Management.Smo.Table继承)

我可以在powershell中执行以下操作:

$s = new-object microsoft.sqlserver.management.smo.server '.';
$db = $s.Databases['AdventureWorks2012'];
$t = $db.Tables | where {$_.Name -eq 'Address'};
$t.ExtendedProperties['MS_Description']; # will print current value
$t.ExtendedProperties['MS_Description'].Value = 'new value';
$t.ExtendedProperties['MS_Description'].Alter(); #persist the new value to the database

我可以在powershell中执行以下操作:

$s = new-object microsoft.sqlserver.management.smo.server '.';
$db = $s.Databases['AdventureWorks2012'];
$t = $db.Tables | where {$_.Name -eq 'Address'};
$t.ExtendedProperties['MS_Description']; # will print current value
$t.ExtendedProperties['MS_Description'].Value = 'new value';
$t.ExtendedProperties['MS_Description'].Alter(); #persist the new value to the database

在扩展属性中,我是这样做的:

string Description = table.ExtendedProperties["MS_Description"].Value.ToString();

您需要在字符串中指定所需的扩展属性-这就是为什么您无法如此轻松地找到它。

它位于扩展属性中,我这样做:

string Description = table.ExtendedProperties["MS_Description"].Value.ToString();

您需要在字符串中指定所需的扩展属性-这就是为什么您无法轻松找到它的原因。

我迭代了所有的扩展属性,但没有在那里看到它。下面是一个与我所想的相同的示例(希望这就是您想要的,不确定):。查找代码为
USE AdventureWorks2008R2的表的特定零件;GO EXEC sys.sp_addextendedproperty@name=N'MS_Description'、@value=N'客户、员工和供应商的街道地址信息'、@level0type=N'SCHEMA'、@level0name=Person、@level1type=N'TABLE'、@level1name=address;向右走
,但它显示这确实是描述的地方。您可以在一个表上运行一个存储过程,如EXEC all,并查看扩展属性的最终结果,然后尝试从C#/SMO端运行它。我迭代了所有扩展属性,但没有在那里看到它。下面是一个我所想的示例(希望这是您所要的,不确定):。查找代码为
USE AdventureWorks2008R2的表的特定零件;GO EXEC sys.sp_addextendedproperty@name=N'MS_Description'、@value=N'客户、员工和供应商的街道地址信息'、@level0type=N'SCHEMA'、@level0name=Person、@level1type=N'TABLE'、@level1name=address;向右走
,但它显示这确实是描述的地方。您可以在一个表上运行一个类似EXEC all的存储过程,查看扩展属性中的结果,然后尝试从C#/SMO端运行它。