2017-07-11 13 views
-1

JDBCでは次の点に注意してください。 一時テーブル#TEMP_NOTIFはこのように作成されます。SQL Serverの一時テーブルでインデックス(またはインデックスの数)を取得する方法

IF OBJECT_ID('tempdb..#TEMP_NOTIF') IS NOT NULL TRUNCATE TABLE #TEMP_NOTIF ELSE CREATE TABLE #TEMP_NOTIF (ID varchar(50) NOT NULL PRIMARY KEY) 

上記の表にインデックスIX_TEMPが作成されています。

CREATE INDEX IX_TEMP_NOTIF ON #TEMP_NOTIF (ID ASC) 

上記の2つの操作はループで実行する必要があります(古いタプルをクリーンアップする)。表の作成は問題ありません(表がすでに存在する場合は切り捨てられます)、問題は索引にあります(索引は初めて作成する必要があります)。インデックス(またはインデックスの数)が一時テーブルに存在するかどうかを調べる方法私は使用しようとしました

select * from sys.indexes where name='IX_TEMP_NOTIF' 

タプルは返されません。

私はSQL SERVER 2012を使用しています。詳細情報が必要な場合は教えてください。

+0

正確な問題は何ですか?インデックスを作成する必要があるかどうか、つまりテーブルが存在しない場合は、何もしないでください。 –

+0

@AlexK。これら2つのクエリはJavaメソッドにあります。 2回目の反復では、テーブルにすでにインデックスが存在することを示して失敗しています。私はそれがまだ作成されていない場合のみ、インデックスを作成するクエリを探しています。 –

答えて

1

あなたの最初のSQLステートメントは、あなたのその後の文は、そのテーブル上のインデックスためtempdbになりますので、一時的ためtempdbで見て知っている:

select * from tempdb.sys.indexes where name='IX_TEMP_NOTIF' 
+0

上記のクエリを試行したが、まだゼロ行。 –

+0

@shivaR - それは私のために正常に動作します。 –

+0

はい、その作業。私は間違ったインデックスを探していた。ありがとう@GordThompson。 –

関連する問題