SQL Server 2005でforループの内部で主キーに基づいて特定のテーブルのすべての行を更新するトリガーを作成したいとします。問題は、どのようにループ内の各行の主キーを取得する必要がありますか?SQL Server 2005でforループ内の各行の主キーを取得する
詳細
Table UserPersonalInfo
UserId varchar(50) Primary Key
FirstName varchar(50)
MiddleName varchar(50)
LastName varchar(50)
UserName varchar(50)
Password varchar(50)
ContactNo bigint
Verified bit
Address varchar(100)
EmailId varchar(100)
RoleId int
CurrentFine money
Photo image
Table CurrentlyIssuedBook
Userid varchar(50) Primary Key
BookId varchar(50)
IssuedDate datetime
ExpectedReturnDate datetime
ISBN varchar(50)
Table CurrentDate
date datetime
の上の上言及していないために残念
2つのテーブル
です助けてください今私が何をしようとしています何です...
毎回I実行私のC#アプリケーション私は実際の現在の日付CurrentDateテーブルの日付を更新しようとします。更新が成功すると、トリガーが実行されます。
トリガーの中で、私はUserPersonalInfoテーブル内の各ユーザーに対して正常に更新したいと思います。そのために私はループを使用することを考えましたが、どのようにUserInfoテーブルから各行の主キー値を取得するのですか?
マイファイン計算ロジックは、私が何をすべき私を提案してください今すぐ
totalfine = 0
x = currentdate - ExpectedReturnDate
y = x/30
z = x%30
for(int i=0; i <y; i++)
{
totalfine = totalfine + (2^i * 4 * 30);
}
totalfine = totalfine + (2^i * 4 * z);
を次のでしょうか?
テーブルのスキーマが(名前、列名とタイプ、など)は何ですか?どの列が主キーですか?各行で正確に何を更新する予定ですか?それは主キーにどのように関連していますか? –
ループを避けることはできません。それはずっと遅いです。なぜ、 'update table set something = key'のようなものではないのですか?上記言及していないため申し訳ありません – Blorgbeard
は 表のUserInfo ユーザID VARCHAR(25)主キー、 名前はvarchar(100)、 DEPTのVARCHAR(50)、 細かいお金 表CURRENTDATE 日付日時 上記されている詳細2つのテーブル 今私がやろうとしているのは 私はCurrentDateテーブルの日付を実際の現在の日付で更新しようとします。更新が成功すると、トリガーが実行されます。 トリガーの内側で、私はUserInfoテーブルの各ユーザーのために正常に更新したいです。そのために私はループを使用することを考えましたが、どのようにUserInfoテーブルから各行の主キー値を取得するのですか? –