我試圖使用以下代碼將數據從一列複製到另一列。mssql - 將不同數據類型的數據從一列複製到同一表中的另一列
UPDATE [dbo].[name] SET [name_HId] = [name_Id]
在運行該查詢其顯示錯誤是
Operand type clash: int is incompatible with hierarchyid
這裏name_HId是hierarchyid
數據類型和名_ID是int
。
如何解決這個問題?
我試圖使用以下代碼將數據從一列複製到另一列。mssql - 將不同數據類型的數據從一列複製到同一表中的另一列
UPDATE [dbo].[name] SET [name_HId] = [name_Id]
在運行該查詢其顯示錯誤是
Operand type clash: int is incompatible with hierarchyid
這裏name_HId是hierarchyid
數據類型和名_ID是int
。
如何解決這個問題?
添加斜線,然後轉換爲HIERARCHYID
select cast('/' +cast(5 as varchar)+ '/' as hierarchyid)
當你施放一個HIERARCHYID字符串,它看起來像 '/ 5 /' 或 '/ 5/8 /'
不知道爲什麼我爲此得到了投票。我測試了我發佈的代碼,它爲我工作。 – Peter
剛將int值轉換爲varchar:
UPDATE [dbo].[name]
SET [name_HId] = Cast([name_Id] as varchar(max))
您是否試過顯式轉換? – tafia
爲什麼和你需要如何用'int'中的列更新'hierarchyid'中的列?它是不能完成的,只是'int與hierarchyid不兼容' –
你可以共享表定義,即描述表名;在你的情況下有數據類型錯過匹配。 –