代码之家  ›  专栏  ›  技术社区  ›  Vijjendra

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

  •  0
  • Vijjendra  · 技术社区  · 16 年前

    CREATE TABLE [UserTable]
    (
        [ID] [int] NULL,
        [Name] [nvarchar](50) NULL,
        [City] [nvarchar](50) NULL
    ) ON [PRIMARY]
    

    在此表中,ID列具有数据类型 int Ntext .

    ALTER TABLE UserTable
    ALTER COLUMN ID NTEXT
    

    消息206,16级,状态2,行1

    当我从 很好用。

    在那之后我试图改变 (现在Id列的数据类型是Nvarchar)列数据类型为 通过 更改查询 它改变了 身份证件

    为什么我们不能直接将列数据类型Int改为Ntext,而可以在Nvarchar改为Ntext之后通过Int改为Nvarchar呢?

    1 回复  |  直到 14 年前
        1
  •  2
  •   gbn    16 年前

    你想做一个隐式转换 disallowed from int to ntext . 为什么,我不知道,但我猜是因为它有两个步骤(int->string,string->LOB)。

    另外,不要使用ntext。它被弃用了。使用nvarchar(max),它应该允许隐式转换。

    最后,如果ID是主键,那么为什么需要LOB类型?你呢 有主键吗。。。?