Sql server 2008 在SQL Server中创建具有动态列数的表

Sql server 2008 在SQL Server中创建具有动态列数的表,sql-server-2008,database-design,dynamic,Sql Server 2008,Database Design,Dynamic,实现具有可变列数和不同类型的表的最佳方法是什么? (列数未知) 我们使用类型为XML的列。您认为如何?您肯定会创建另一个表,其中键是ID和ColumnName的复合键 表Def: ID ColumnName ColumnValue Id是主表中带有FK的键,用于强制执行完整性 您现在有两个选择:将值的数据类型设置为转储区并插入任何内容,或者为所需的每个数据类型创建一个如上所述的表 然后,您可以编写一个带有枢轴的视图,使其看起来像用于查询等的普通表 Ps我不认为这是a

实现具有可变列数和不同类型的表的最佳方法是什么? (列数未知)


我们使用类型为
XML
的列。您认为如何?

您肯定会创建另一个表,其中键是ID和ColumnName的复合键

表Def:

ID        ColumnName        ColumnValue
Id
是主表中带有FK的键,用于强制执行完整性

您现在有两个选择:将值的数据类型设置为转储区并插入任何内容,或者为所需的每个数据类型创建一个如上所述的表

然后,您可以编写一个带有枢轴的视图,使其看起来像用于查询等的普通表

Ps我不认为这是a)最好的解决方案或b)最快的解决方案。

如果可能的话,这听起来像是在使用
从技术上讲,您不能在SQL Server中设计变量列表。

顺便说一下,有一个基于以下列的表可能会有所帮助:

EntityName: Full qualified entity name
EntityIdentifier: Id
PropertyName: 
PropertyType:
PropertyValue:
EntityStatus: may be useful on delete action
在这些方法中,像XML场景一样,您需要一个解析器来提取实体。At list sql查询将更具可读性,更新将更方便。

希望能有所帮助。

这不是EAV吗?(无论是好是坏)我想是的,因此我建议a)和b)塔恩克斯,请给我你的邮件发送完整的描述我的电子邮件:ESH_Computer110@yahoo来自设拉子伊兰莫森的埃斯梅尔。heydari@gmail.com是我的电子邮件地址,如果完整的问题和答案可以在堆栈溢出上协商供他人使用,将不胜感激。顺便说一句,别忘了把答案标记为,如果合适的话。