2017-05-15 25 views
1

我試圖使用以下代碼將數據從一列複製到另一列。mssql - 將不同數據類型的數據從一列複製到同一表中的另一列

UPDATE [dbo].[name] SET [name_HId] = [name_Id] 

在運行該查詢其顯示錯誤是

Operand type clash: int is incompatible with hierarchyid 

這裏name_HId是hierarchyid數據類型和名_ID是int

如何解決這個問題?

+0

您是否試過顯式轉換? – tafia

+1

爲什麼和你需要如何用'int'中的列更新'hierarchyid'中的列?它是不能完成的,只是'int與hierarchyid不兼容' –

+0

你可以共享表定義,即描述表名;在你的情況下有數據類型錯過匹配。 –

回答

-1

添加斜線,然後轉換爲HIERARCHYID

select cast('/' +cast(5 as varchar)+ '/' as hierarchyid) 

當你施放一個HIERARCHYID字符串,它看起來像 '/ 5 /' 或 '/ 5/8 /'

+0

不知道爲什麼我爲此得到了投票。我測試了我發佈的代碼,它爲我工作。 – Peter

0

剛將int值轉換爲varchar:

UPDATE [dbo].[name] 
SET [name_HId] = Cast([name_Id] as varchar(max)) 
相關問題