【发布时间】:2013-01-21 22:48:38
【问题描述】:
如何使用 Microsoft.SqlServer.Management.Smo 获取和设置 SQL Server 2008 表的描述属性?我已经看到有关如何在列级别而不是表级别执行此操作的文档。
【问题讨论】:
标签: c# sql-server smo
如何使用 Microsoft.SqlServer.Management.Smo 获取和设置 SQL Server 2008 表的描述属性?我已经看到有关如何在列级别而不是表级别执行此操作的文档。
【问题讨论】:
标签: c# sql-server smo
我能够在 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
【讨论】:
不记得了:扩展属性中有描述吗?如果是这样,TableViewTableTypeBase.ExtendedProperties 将为您提供描述(Microsoft.SqlServer.Management.Smo.Table 继承)
【讨论】:
USE AdventureWorks2008R2; GO EXEC sys.sp_addextendedproperty @name = N'MS_Description', @value = N'Street address information for customers, employees, and vendors.', @level0type = N'SCHEMA', @level0name = Person, @level1type = N'TABLE', @level1name = Address; GO 的表的特定部分
它在扩展属性中,我是这样做的:
string Description = table.ExtendedProperties["MS_Description"].Value.ToString();
你需要在字符串中指定你需要的扩展属性——这就是为什么你不能这么容易找到它的原因。
【讨论】: