一時テーブルを作成しているときに、一時テーブルがすでに存在することを通知するエラーメッセージが表示されます。一時テーブルはセッションに固有であるため、接続が適切に閉じられていないようです。これは、usingステートメントにあるreturnステートメントと関係があると思います。
私は次のコードを持っています:
using (IDbConnection connection = dbConnectionHandler.CreateConnection())
{
connection.Open();
CreateATempTable();
PopulateTempTable();
DataSet ds = CallStoredProcThatUsesTempTable();
return ds;
}
この種のコードをいくつかの場所で使用して、同じ名前の一時テーブルを作成します。
残念ながら、次のエラーが発生しますThere is already an object named '#MyTempTable' in the database
。
これで、一時テーブルはセッションに固有であることがわかったので、セッションを閉じると消えるはずです。
これを引き起こす可能性があると私が信じている3つのことがあります...
- connection.Close()を呼び出す必要があります
- usingステートメントの外にreturnステートメントを配置する必要があります
- 戻る前に作成した一時テーブルを削除する必要があります
誰かがそれがどれであるか知っていますか?またはそれが私が考えていなかったものなら?