一時テーブルを試していて、問題が発生しています。
これは、私が達成しようとしていることの非常に単純化されたコードです。
IF(Object_ID('tempdb..#TempTroubleTable') IS NOT NULL) DROP TABLE #TempTroubleTable
select 'Hello' as Greeting,
NULL as Name
into #TempTroubleTable
update #TempTroubleTable
set Name = 'Monkey'
WHERE Greeting = 'Hello'
select * from #TempTroubleTable
update ステートメントを実行しようとすると、次のエラーが表示されます。
varchar 値 'Monkey' をデータ型 int に変換するときに変換に失敗しました。
一時テーブルがその列に varchar を入力することを期待していない理由は理解できますが、なぜ int を想定しているのでしょうか? varchar(max) を期待するように列を準備する方法はありますが、それでも NULL で初期化できますか?