SSMS
 sql >> Teknologi Basis Data >  >> Database Tools >> SSMS

Siapkan Pemicu pada Tabel untuk membatasi jumlah Operasi INSERT, DELETE, UPDATE

create table dbo.targetTable
(
    id int,
    colA varchar(10)
);
go
create or alter trigger dbo.DMLxTimes on dbo.targetTable
for insert, update, delete
as
begin
    /*
        --old days..
        IF @@ROWCOUNT > 5
        begin
            rollback;
        end
    --*/

    declare @maxrows int = 5; --maximum number of rows allowed per dml action

    if 
    (select count(*) from inserted) > @maxrows
    or
    (select count(*) from deleted) > @maxrows
    begin
        rollback;
    end
end
go

insert into dbo.targetTable(id, colA)
values (0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'); --5 rows inserted
go
insert into dbo.targetTable(id, colA)
values (0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'),(0, 'a'); --6 rows inserted ... error
go
insert into dbo.targetTable(id, colA)
values (0, 'a'),(0, 'a'); --2 rows inserted
go

--all updated, error
update dbo.targetTable
set colA = colA;
go

--ok
update top(5) dbo.targetTable
set colA = colA;
go

delete top (4) from dbo.targetTable;
go

--ok
update top(15) dbo.targetTable
set colA = colA;
go



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Di mana saya dapat memeriksa jenis tabel yang ditentukan pengguna di SQL Server 2008 di SSMS? dan bagaimana saya bisa memasukkan kolom baru ke dalamnya?

  2. Cara mengedit data di kisi hasil di SQL Server Management Studio

  3. SQL Server 2016 Express Management Studio tidak dapat mendesain tabel baru atau yang sudah ada

  4. Bagaimana mengubah tipe data kolom tabel metadata. Seperti apa pernyataan pembaruan itu?

  5. Studio Manajemen SQL Server tidak akan mulai - Jenis perpustakaan tidak dapat ditemukan