2016-07-18 3 views
0

背景:SQLデータウェアハウス - テーブル値関数を作成するunale

私はSQL ServerデータウェアハウスをAzure SQLデータウェアハウスに移行しています。データベースはSSAS OLAPキューブのソースです。

メジャーグループのいくつかはパーティション化されており、パーティションの関連データをクエリするためにテーブル値関数に依存しています。

問題:

私はAzureの-DWHでこれらの関数を作成することはできませんよ。

サンプル機能: (関数udm.MyFunctionを作成するには)リターンとしてテーブルを返す()(GETDATEを選択し、GETUTCDATE())

エラーメッセージ: メッセージ104051、レベル16、状態1、サポートされていないライン46 データ型エラー。ステートメントは、パラレルデータウェアハウスでサポートされていないデータ型を参照しているか、サポートされていないデータ型を生成する式があります。文を変更して再実行してください。

MSDNのリンク:https://msdn.microsoft.com/en-US/library/mt203952.aspx リスト「return_data_type」と「スカラーユーザー定義関数の戻り値はありTransact-SQLの関数については、SQLデータウェアハウスではサポートされているすべてのスカラーデータ型が許可されて言及したタイムスタンプ。 (rowversion)データ型はサポートされていない型です。

私が仮定しているのは、単一の値を返す関数を作成することができたので、TABLEの戻り値の型はエラーです。

テーブル値関数がサポートされているかどうかは確信があります。もしそうなら、私はそれらを動作させるために何をする必要がありますか?

+0

キューブが多次元である場合、なぜあなたが関数を使用していたのかが分かります。 Tabularの場合、ストアドプロシージャを使用できるはずです。どちらですか? – GregGalloway

+0

多次元SQL Server 2016は、Azure VMでホストされています。 – BenOnline

答えて

1

Azure SQLデータウェアハウスは、現在、インラインまたは複数ステートメントのテーブル値関数をサポートしていません。現時点では、スカラー関数のみです。また、SQL Serverと比較して1つの追加制限があります。スカラー関数本体は表を参照できません。(msdn

は、データベースのデータを参照しないのTransact-SQLステートメント、(テーブルまたはビュー)のシリーズは、値を定義することを指定します

FUNCTION_BODY:詳細については、関数本体のセクションを参照してください関数の

状況に応じて、別の方法を使用する必要があります。追加のメタデータを含むprocまたは明示的なクエリのいずれかです。

0

JRJが述べたように、スカラーではない型のカーソルと表は使用できません。ドキュメントを明示的に呼び出すように更新します。

関連する問題