2017-10-24 6 views
0

テーブルにデータベースが存在するかどうか、U-SQLでチェックしています。現在、構文はこの例では作成したデータベースにU-SQLのテーブルが存在するか確認してください

DROP TABLE IF EXISTS Logs; 
CREATE TABLE Logs (
    date DateTime, 
    eventType int, 
    eventTime DateTime, 
    INDEX Index_EventType CLUSTERED (eventType ASC) 
    DISTRIBUTED BY HASH(eventType) INTO 3); 

ですが、私はちょうど、テーブルが存在するか、現在のデータベースでは、私はそれが存在する場合はテーブルを削除したくないではないかどうかを確認したいです。

基本的に私は以下のようにTable.SuchためのU-SQLスクリプトでif..elseステートメントを追加したい:

IF NOT EXISTS Logs 
{ 
//Create table here 
} 
else 
{ 
//Update table scripts 
} 

U-SQLスクリプトで、この特定の条件を持ってどのように?

+0

更新テーブルスクリプトでUSQLテーブルの構造を更新しようとしていますか?私が知る限り、これはサポートされていません。これについて詳しく説明するか、更新スクリプトの一部を与えることができますか? – frictionlesspulley

+0

@ frictionlesspulley-私はテーブルのif-else条件を持っています。テーブルが存在しない場合は、データベースにテーブルが作成されますが、データベースにテーブルが存在する場合は、else節にalterステートメントを追加したいと思います。とにかく答えが得られました...現在、この機能はテーブル構造。 – Amruta

答えて

0

あなたは、このような動作を実現するためにCREATEステートメント内IF NOT EXISTSを指定することができます。

CREATE TABLE IF NOT EXISTS Logs (
    date DateTime, 
    eventType int, 
    eventTime DateTime, 
INDEX Index_EventType CLUSTERED (eventType ASC) 
DISTRIBUTED BY HASH(eventType) INTO 3); 
+0

返事ありがとうございましたmaya、しかし私はelse文も持っていたいと思います。もしテーブルが存在しなければ、私はそれを作成し、そうでなければテーブルを変更するためのスクリプトを持っています。現在、私は "CREATE TABLE IF NOT LOGIS"構文のみを使用しています。 – Amruta

+0

このようなオプションは実際にはパーティション(https://msdn.microsoft.com/en-us/library/azure/mt796475.aspx)には存在しますが、テーブルには存在しません。 – maya

+0

代わりに、usql.tablesカタログビュー(https://msdn.microsoft.com/en-us/library/azure/mt826858.aspx)を照会して、テーブルの有無を確認することもできます。ただし、IFの動的評価がサポートされていないため、U-SQL以外のIF/ELSEロジックを実装する必要があります。 – maya

1

あなたはTABLE.EXISTSためhttp://aka.ms/adlfeedbackで機能要求を提出してくださいことはできますか?

回避策として、単一のパーティションのみを含む偽のパーティション表を作成するか、コメントに指定されている回避策のいずれかを回答に使用できます。

+0

は機能リクエストを発行しましたこのため。 – Amruta

+0

ありがとうございました。 –

関連する問題