0

割り当てを完了しようとしていますが、問題に直面しているため、あなたの助けが必要です。テーブル名クライアントを作成しました。名前には6つの列名(c_id、c_name、c_transfer、c_balance、day、time)が含まれています。曜日列に土曜日と日曜日が含まれるトリガーを作成すると、Sorry Bank closed が出力されます。時間列に 05:00 から 09:00 が含まれている場合は挿入されますが、時間が条件行を守らない場合は挿入できません。コードは次のとおりです。

create table client
(
c_id int identity primary key,
c_name varchar(50),
c_transfer money,
c_balance money,
[date] datetime,
[day] varchar(50),
)

alter trigger transactions
ON client
for Insert 
as
begin
    if(select top 1 [day] from client order by c_id desc)='Satuarday'
    begin
    print'Sorry Bank is closed today'
    rollback;
    commit;
    end
    if(select top 1 [day] from client order by c_id desc)= 'Sunday'
    begin
    print'Sorry Bank is closed today'
    rollback;
    commit;
    end
    if(select top 1 date from client order by c_id desc)not in (DATEDIFF(hh,'09:00','05:00'))
    begin
    print'Sorry Bank time is not this...'
    rollback;
    commit;
    end
end
4

1 に答える 1

0

あなたが探しているのはInsertedテーブルです。このテーブルはトリガー内で使用でき、FOR INSERT挿入される行が含まれます。

GO
CREATE TRIGGER transactions
ON client
FOR INSERT AS
BEGIN
  IF EXISTS(SELECT [day] FROM inserted 
            WHERE ([day] IN ('saturday', 'sunday')) 
            OR (DATEPART(hh,[date]) <= 5) OR DATEPART(hh,[date]) >= 9)
  BEGIN
    PRINT'Sorry Bank is closed at this time.'
    ROLLBACK;
  END;
END;
于 2013-02-27T18:13:30.920 に答える