2010-12-17 1 views
2

私はストアドプロシージャを作成し、一時テーブル#TempHitRatioTableを作成しました。私は自分のプロシージャにドロップテーブルステートメントを配置することを忘れていましたが、今私が何をしても、一時テーブルを取り除くことはできず、プロシージャを再実行することはできません。私は完全にサーバーから切断して再接続しようとしましたが、まだそこにあります。私は、次のステートメントを試してみました:一時テーブルを削除するのを忘れました。これで取り除くことができません

IF OBJECT_ID('tempdb..#TempHitRatioTable') IS NOT NULL 
DROP TABLE #TempHitRatioTable 

私も試してみました:

IF EXISTS(SELECT * FROM sys.tables WHERE name LIKE '#TempHitRatioTable%') 
DROP TABLE #TempHitRatioTable 

IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'#TempHitRatioTable') AND type = (N'U')) DROP TABLE #TempHitRatioTable 

しかし、私はまだそのテーブルを取り除くことはできません。私のストアドプロシージャはもはや実行されていません、また、私はそれを実行しようとした水晶レポートですが、何も動作するようです。助けてください。

+1

あなたは火を試みましたか? – John

+0

Managementスタジオから接続できますか? –

+0

SSMS経由で何に接続できますか? – dazacher

答えて

1

私は何が起こっているのか把握しました。私はそれの中にカーソルの一番下にcreate tableを置いていたので、カーソルが繰り返して新しいレコードを追加するたびに、そのテーブルはすでに作成されていました。カーソルを作成する前に、CREATE TABLEをストアドプロシージャの先頭に移動し、ステートメントを追加しました。IF OBJECT_ID( 'tempdb ..#TempHitRatioTable')プロシージャの先頭にNULL DROP TABLE #TempHitRatioTableがあります。プロシージャの終わりにドロップテーブルステートメントを追加し、すべてがうまくいきます。私は何度もそれを実行し、私の結果を1つの記録だけに戻すことはできません。愚かな私:-)

関連する問題