簡體   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