2016-08-10 16 views
1

SQL Server 2008データベースでは、ユーザー定義のデータ型があります。ユーザー定義のデータ型と#tempテーブル

CREATE TABLE #SomeTable 
(
    [some_column] UDT_SomeType, 
    -- other columns 
) 

どうやら私の試みとして、これまで私は、グーグルとして、私のUDT_SomeTypetempdbに存在しない、ので、失敗した(:保存されprocsのの一つで、私は次のように、一時テーブルの列型としてその型を使用するつもりでしたtempテーブルが実際に格納される場所)。

UDT_SomeTypeは実際NUMERIC(19,9)あるので、私は今のところ、以下の回避策を使用することができます。

CREATE TABLE #SomeTable 
(
    [some_column] NUMERIC(19,9), 
    -- others columns 
) 

私はそれが本当に良い解決策だとは思わないが。ここに適用できるベストプラクティスはありますか?

+0

はこちらをご覧ください:http://stackoverflow.com/questions/21127745/how-do-i-create-a-テンポラリテーブルからタイプ –

+0

@ KamilG私はそれを理解していますが、テンポラリテーブルには他のカラムがあります。あなたが提供したソリューションは、新しいテーブルタイプを定義した場合にのみ適用できます – Artem

+0

@Artem便利なソリューションが見つかりましたか? – Simone

答えて

0

私は速い答えは、テーブルテーブルの代わりにテーブル変数を使用することだと思います。

1

残念ながら、簡単なスクリプトではありませんが、必要なときにすべての必要なタイプを作成するための小さなスクリプトを作成します。

補助スクリプト:

USE [tempdb] 
GO 
CREATE TYPE [UDT_SomeType] FROM NUMERIC(19,9) 
GO 

ノーマルスクリプト:

USE [YOURDB] 
GO 

CREATE TABLE #SomeTable 
(
    [some_column] UDT_SomeType, 
    -- other columns 
) 
+0

これは良い回避策です。このアプローチを使用する努力は最小限です – Artem

関連する問題