2017-05-15 11 views
1

I次のコードを使用して、同じテーブル内のある列から別の列にデータをコピーしようとしました。mssql - 同じテーブル内のある列から別の列に異なるデータ型のデータをコピーする

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

それは

Operand type clash: int is incompatible with hierarchyid 

ここname_HIdはhierarchyidデータ型であり、NAME_IDがintである誤差を示すこのクエリを実行している間。

どのようにこの問題を解決できますか?

+0

明示的キャストを試しましたか? – tafia

+1

なぜ、どのように必要です 'hierarchyid'の列を' int'の列で更新​​しますか? 'intはhierarchyidと互換性がありません' –

+0

あなたはテーブル定義を共有できますか?つまり、tablenameを記述してください。あなたにはデータ型ミスマッチがあります。 –

答えて

-1

スラッシュを追加して、あなたは、それは '/ 5 /' または '/ 5月8日/'

+0

なぜ私はそれのためのダウン投票を得たかわからない。私が投稿したコードをテストしたところ、私のために働いていました。 – Peter

0

のようになります。文字列にhierarchyid型をキャストすると、その後

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

をhierarchyid型にキャストだけint値をvarcharにキャストします。

UPDATE [dbo].[name] 
SET [name_HId] = Cast([name_Id] as varchar(max)) 
関連する問題