2

ビットデータ型のIsLoggedInフィールドを含むすべてのユーザーアカウントの詳細を含むusersテーブルがあります。前のセッションが期限切れになる前にユーザーが新しいセッションを開始したときに、IsLoggedIn=1で古い行を更新したいと思います。これを達成するための最良の方法は何ですか?Triggerでこれを行うことは可能ですか?

前もって感謝します..

4

2 に答える 2

1

確かに2つのことがあります。1)ユーザーIDと2)データベース内のセッションID。

これで、新しいセッション開始(session_Start)イベントが発生すると、ロジックを使用して1つのストアドプロシージャを呼び出すことができ、ロジックは次のようになります。

1)同じuserIDのレコードがない場合は、更新を行わないでください。2)同じuserIDを持つレコードがある場合は、IsLoggedIn=1ですべてを更新します。

このロジックをTRIGGERで拡張し、必要に応じてバンド化することもできます。

基本的に、session_Startイベントを追跡し、DB操作を実行する必要があります。

于 2012-07-30T07:31:46.533 に答える
1

UIからのログインを処理する必要があるため、トリガーは推奨される解決策にはなりません。ログインが1つしかない場合は、それApplication_Startを使用できます。複数のログインがある可能性がある場合は、それSession_Startが望ましいです。そこから、データベースを呼び出して、それぞれのアクションを実行できます。
2つの違いについては、http://forums.asp.net/t/1230163.aspx/1?What + s + the + Difference + between + Application_Start + and + Session_Start + in + Global +aspx+で説明されています。

于 2012-07-30T10:20:27.410 に答える