でSELECT INTOを使用して#TEMP作成します。私は、テーブル変数を使用して先行していない#
テーブルを作成しないようにしたい場合はNULL列のデフォルトのデータ型は、int
あるこの単純な文に対して目的のデータタイプ
Select NULL as Col INTO #temp
、SELECT INTO
節を使用している場合、NULL列をデフォルトのvarchar
として設定する方法はありますか?
おかげ
でSELECT INTOを使用して#TEMP作成します。私は、テーブル変数を使用して先行していない#
テーブルを作成しないようにしたい場合はNULL列のデフォルトのデータ型は、int
あるこの単純な文に対して目的のデータタイプ
Select NULL as Col INTO #temp
、SELECT INTO
節を使用している場合、NULL列をデフォルトのvarchar
として設定する方法はありますか?
おかげ
だけCAST
こと。
Select CAST(NULL AS VARCHAR(30)) as Col
INTO #temp
裸NULL
のための暗黙のデフォルトとしてこれを行う方法はありません。
ありがとう! :) :) :) – LONG
あなたは以下のように変換し使用することができます。
select convert(varchar(10), null) as col into #temp
10の代わりに、あなたが提供する答えが十分でなければならない、あなたの必要なサイズ
を使用することができます。私はこれをたくさん行います。ここでは、いくつかのSELECT INTOのテクニックを紹介しています(私のインラインコメントに注意してください):
if object_id('tempdb..#t1') is not null drop table #t1;
select
someid = identity(int,1,1), -- add an identity column
someTxt1 = cast('xxx' as varchar(10)), -- set the datatype
someTxt2 = isnull(cast(555 as int), 0) -- set the column as not nullable
into #sometable;
私は何をしようとしているのか分かりません。あなたは何をしようとしているのか、そしてなぜそれを精緻化できますか? – Tanner
これは単なる例ですが、実際のケースは、2つの異なるタイプの列を結合しようとしていたため、エラーを投げる 'union all'です。 – LONG