我有一个属性,可以在某个时候使用Integer,float,Date。是否可以使用用户定义的数据类型将其存储在单个列中,还是应该为它创建单独的表?
e.g.
<name,type,value>
<Id,int,12>
<Id2,float,12.02>
<Id3,datetime,'09-09-2015 00:00:01'>.
答案 0 :(得分:0)
XML允许您向您的值添加任何元数据(实际上将其转换为字符串)。一个快速而肮脏的例子(更好的方法是使用正确的XML命名空间):
select 'int' AS [value/@type],CAST(12 AS VARCHAR(MAX)) AS [value]
union select 'float' ,CAST(12.05 AS VARCHAR(MAX))
union select 'date' ,CAST({d'2015-05-01'} AS VARCHAR(MAX))
union select 'datetime' ,CAST(GETDATE() AS VARCHAR(MAX))
for xml path(''),ROOT('root')
/*
Result
<root>
<value type="date">Mai 1 2015 12:00AM</value>
<value type="datetime">Sep 16 2015 3:04PM</value>
<value type="float">12.05</value>
<value type="int">12</value>
</root>
*/