.net - 从 SQL Server 表中选择扩展属性

标签 .net sql-server-2008 c#-4.0 extended-properties

我正在为客户的数据库编写一个简单的 CMS。有 12 个表,他们需要管理其中 4 个中的所有数据。

我设置了一个动态数据项目(Linq-to-SQL,因为这是我最熟悉的项目),第一页使所有 12 个表都可以进行编辑。它们位于一个名为visibleTables 的可枚举列表中。

接下来,我进入 SSMS 并创建了一个名为 UserEdit 的扩展属性,并将其设置为 0 或 1,具体取决于用户是否应该在该屏幕上看到它。

我想做的是通过该扩展属性过滤可见表列表,但不知道如何操作。

我可以通过此查询查看表列表和属性:

select major_id, name, value
from sys.extended_properties
where name = 'UserEdit'

我打算遍历可见表并删除带有 0 的表,但我还没有弄清楚,因为major_id 似乎不是我能找到的属性。

最佳答案

好吧,根据 http://msdn.microsoft.com/en-us/library/ms177541.aspx ,您的扩展属性类(OBJECT_OR_COLUMN)的“major_id”确实表示“object_id”。因此,以下查询将为您提供所有扩展属性以及它们所属的表:

select p.*, t.*
from sys.extended_properties p
inner join sys.tables t on p.major_id = t.object_id
where class = 1

您可以根据需要对其进行过滤,但如果您需要帮助,请告诉我。

关于.net - 从 SQL Server 表中选择扩展属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714848/

相关文章:

asp.net - 在 .NET 6 中创建和使用类型化 http 客户端和 DI 时,我是否应该明确使用 httpClientFactory 类作为建议?

sql-server - 为什么我不能在SQL Server 2008的可为空的DATE列中插入NULL?

SQL查询以查找表中列值的多次出现次数?

sql - 授予对 View 的 SELECT 权限,但不授予对基础对象的 SELECT 权限

c# - 在图片框、窗体上查找碰撞区域

c# - 为什么以下不能编译?

.net 和 matlab 集成

.net - 如何在 VS2012 分析器中对每行代码进行计时?

.net - ResolveEventArgs.RequestingAssembly 为 Null

WPF检测弹出窗口的最终位置