[英]Alter Column Datatype from Int to Ntext and vice-versa
我有一个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与ntext不兼容
当我将ID列的数据类型从Int更改为navarchar时,它可以正常工作。
在那之后我想改变ID(即现在的ID列的数据类型类型为nvarchar)通过更改查询列的数据类型为ntext它成功地改变ID列的数据类型。
为什么不能在将Nvarchar转换为Ntext之后通过INT转换为Nvarchar来直接将Int更改为Ntext呢?
您正在尝试执行从int到ntext的隐式转换。 为什么,我不知道,但是我猜是因为这是2个步骤(int-> string,string-> LOB)。
另外,不要使用ntext。 它被弃用了。 使用应允许隐式转换的nvarchar(max)。
最后,如果ID是主键,那么为什么要使用LOB类型? 你有一个主键...?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.