2017-10-17 5 views
0

でSELECT INTOを使用して#TEMP作成します。私は、テーブル変数を使用して先行していない#テーブルを作成しないようにしたい場合はNULL列のデフォルトのデータ型は、intあるこの単純な文に対して目的のデータタイプ

Select NULL as Col INTO #temp

SELECT INTO節を使用している場合、NULL列をデフォルトのvarcharとして設定する方法はありますか?

おかげ

+0

私は何をしようとしているのか分かりません。あなたは何をしようとしているのか、そしてなぜそれを精緻化できますか? – Tanner

+0

これは単なる例ですが、実際のケースは、2つの異なるタイプの列を結合しようとしていたため、エラーを投げる 'union all'です。 – LONG

答えて

1

だけCASTこと。

Select CAST(NULL AS VARCHAR(30)) as Col 
INTO #temp 

NULLのための暗黙のデフォルトとしてこれを行う方法はありません。

+0

ありがとう! :) :) :) – LONG

1

あなたは以下のように変換し使用することができます。

select convert(varchar(10), null) as col into #temp 

10の代わりに、あなたが提供する答えが十分でなければならない、あなたの必要なサイズ

1

を使用することができます。私はこれをたくさん行います。ここでは、いくつかの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; 
関連する問題