【发布时间】:2011-04-11 07:29:04
【问题描述】:
我有一个 SQL 表:
CREATE TABLE [UserTable]
(
[ID] [int] NULL,
[Name] [nvarchar](50) NULL,
[City] [nvarchar](50) NULL
) ON [PRIMARY]
在此表中,ID 列的数据类型为 int。我想把ID列的数据类型改成Ntext。
为此,我使用以下 Sql 查询:
ALTER TABLE UserTable
ALTER COLUMN ID NTEXT
此查询给出以下错误消息:
消息 206,第 16 级,状态 2,第 1 行 操作数类型冲突:int is 与ntext不兼容
当我将 ID 列数据类型从 Int 更改为 navarchar 时,它工作正常。
之后我尝试将 ID(现在 Id 列的数据类型为 Nvarchar)列数据类型通过 Alter Query 更改为 Ntext strong> 它成功地改变了 ID 列数据类型。
为什么我们不能直接将列数据类型更改为 Int 到 Ntext,而我们可以在 Nvarchar 到 Ntext 之后通过 INT 到 Nvarchar 来做到这一点?
【问题讨论】:
-
ntext已被NVARCHAR(MAX)弃用,不应用于新工作。到底为什么要将int列转换为ntext? -
@Martin:没有任何具体原因,我只是为了测试目的而尝试这样做,我收到了错误消息,所以想知道这个错误。
标签: sql-server