1

我有一列名为 TITLE 的 varchar(10)。除了包含列标题的第一行之外,该列的其余部分恰好都是整数,所以我想将数据类型更改为 int。

ALTER TABLE X
ALTER COLUMN TITLE int

转换第一行(即列标题)时出现错误:“将 varchar 值 'TITLE' 转换为数据类型 int 时转换失败。

那么,如何转换除列标题之外的所有行的数据类型?

4

4 回答 4

1

简短的回答是“否”,您不能在单个 SQL 列中混合数据类型。对于排序、构建索引等,数据类型需要保持一致。

您可以使用另一个表来存储各种列标题,或者在同一个表中存储另一个列。

使用MongoDB等NoSQL解决方案可能是一种方法,具体取决于您存储的数据类型。这些解决方案使您可以更加灵活地使用架构,甚至每个文档都可以有所不同。

于 2013-02-01T17:55:43.657 回答
0

您不能在列中混合“不匹配”数据类型。您可以使用模糊数据类型,如VarBinaryorXML并随意解释它们。

OTOH,您可以使用sp_addextendedproperty来存储列标题和其他无关的绒毛。

于 2013-02-01T19:27:16.757 回答
0

不,抱歉,您不能在同一列上有多种数据类型。

数据类型

于 2013-02-01T17:57:45.670 回答
0

你没有。列不是独立变量的集合,每个变量都有自己的类型。列中的所有内容都具有相同的类型。如果您尝试这样做,那么您的架构不太可能是它应该的样子。如果您发布更多详细信息,您可能会通过改进的架构获得一些答案。

于 2013-02-01T17:58:35.820 回答