2017-08-03 24 views
0

3つのSQLクエリ結果がSQL Serverデータベースの3つの一時テーブルにバッチで保存されていますが、これらの一時テーブルはtableauからデータベースに接続している間はtableauで利用できないようです。例えばSQL ServerまたはTableau Desktopから一時テーブルをロードする方法は?

はタブロー#pにおけるSQL Serverデータソースに接続した後

メインテーブルから #p

CREATE TABLE #p 
(
    PersonID int, 
    LastName varchar(255), 
    FirstName varchar(255), 
    Address varchar(255), 
    City varchar(255) 
); 

挿入値#P

insert into #p 
    select * 
    from Persons 
    where PersonID in (1, 2, 3); 

を一時テーブルを作成します一時テーブルがテーブルリストに表示されません。ダッシュボードにtableauでtempテーブルを使用する方法はありますか?親切でない場合は、これらの一時表をダッシュ​​ボードで使用可能にする方法に関するいくつかの選択肢を提案してください。

私はこの問題をここ数日間解決するのに苦労していますので、すぐに皆さんからいくつかの提案を聞くことを願っています。ありがとうございます!

答えて

1

ローカル一時テーブルはセッションスコープです(つまり、生成されたセッションと同じセッションでのみ表示されます)。

あなたがそれらを他のセッションで見えるようにしたい場合は、グローバル・テンポラリ・テーブル(SQL Serverは、名前の前に##使用しています)、または通常のテーブルで試すことができ

...

ローカルおよびグローバル一時表意志それらが生成されたセッションが閉じられると消えます。

+0

! –

+0

@ mauro ..あなたの素早い返答に本当に感謝します!私はあなたの答えをはっきりと得ています...しかし私が話している問題は、通常のテーブルに変更を加えると壊れる可能性のある古いデータベースのSQLです。あなたのテーブルのダッシュボードでこの一時テーブルを使用するように提案できる任意の可能な代替? –

+0

@DeviVijayakumar Glabal Tempテーブルを使ってみると、Tableauセッションで同じグローバル温度テーブルが読み取られたときに、それらを生成するセッションがまだ生きていると仮定しても – mauro

1

テンポラリテーブル(グローバル一時テーブルを含む)は、それ以上の接続がアクセスしていないときに自動的に削除されます。あなたがTableauでやろうとしていることを達成するには、いくつかの方法があります。一時テーブル

タブローと

1.初期SQLは、接続を定義するときに選択できる「Intial SQL」オプションを持っています。これらのステートメントは、Tableauがサーバーに接続するたびに実行されます。 tempdbに一時テーブルが作成されていることに注意してください。データベースをtempdbに変更する必要があります。また、SQLで完全修飾テーブル名を使用する必要があります。強調表示された領域には特に注意してください。

enter image description here

2.あなたは十分なアクセス権を持っている場合は、ストアド・プロシージャとしてクエリを作成し、タブローからそれを呼び出すことができます。手順

を保管していました。ストアドプロシージャは、テーブルの下に別のセクションとして表示されます。あなたの迅速な応答のためにあなたはそんなにmauro..thank @

enter image description here

+0

私を助けてくれて本当にありがとうございました。ちょうどこの手順はTableauでアクセス可能でしょうか?データベースもSQLサービスではアクティブではありません。当面の接続!! –

+0

@DeviVijayakumar、データをオフラインでアクセス可能にする必要がある場合は、Tableauの抽出物を見てください –

関連する問題