繁体   English   中英

将列数据类型从Int更改为Ntext,反之亦然

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM