我有一个名为TITLE的varchar(10)列。除了第一行(包含列标题)之外,列的其余部分恰好是所有整数,因此我想将数据类型更改为int。
ALTER TABLE X
ALTER COLUMN TITLE int
转换第一行时遇到错误,第一行是列标题:“将varchar值'TITLE'转换为数据类型int时转换失败。
那么,如何转换除列标题以外的所有行的数据类型?
答案 0 :(得分:1)
简短的回答是否,您不能在单个SQL列中混合数据类型。数据类型需要与排序,构建索引等一致。
您可以使用另一个表来存储各种列标题,或同一个表中的另一列。
使用NoSQL等MongoDB解决方案可能是一种方法,具体取决于您要存储的数据类型。这些解决方案使您可以更灵活地使用模式,每个文档甚至可以不同。
答案 1 :(得分:0)
对不起,您不能在同一列上拥有多种数据类型。
答案 2 :(得分:0)
你没有。列不是可以各自具有自己类型的独立变量的集合。列中的所有内容都具有相同的类型。如果您尝试这样做,那么您的架构可能不应该是它应该是什么。如果您发布更多详细信息,您可以通过改进的架构获得一些答案。
答案 3 :(得分:0)
您不能在列中混合'n'match数据类型。您可以使用VarBinary
或XML
等模糊数据类型,并根据需要进行解释。
OTOH,您可以使用sp_addextendedproperty来存储列标题和其他无关的内容。