Hej. Sitter med ett problem, och har stångat mig blodig för att lösa det. Jag är en total nybörjare på triggers och sql server 2000 så jag misstänker att det bara är jag som ser problemet som "svårt". Hej! absolut är ditt förslag ett alternativ i allra högsta grad. Nu är det mera av lärandeintresse som jag undrar detta,. Sitter med övningar utan lösningar till en sql server - bok jag besitter . Alla uppgifter är kanske inte helt logiska i sin natur, men eftersom jag har grejjat med denna ett tag skulle det vara kul att se hur man skulle kunna lösa den . ahaaaaaa...... Jag är ett päron. Jag hade helt missat att man även kan deklarera variabler i triggers. Min lösning ser då ut som följer: mmmmmm.... en AHA upplevelse. Kan du inte sätta "Allow Nulls" på det fältet när du skapar själva tabellen. Då riskerar du inte att få några null där. Sen kan du ju naturligtvis ha triggern också. Trigger - kolla not null
IaF. Jag ska skapa en trigger tll en tabell som kontrollerar att ett visst värde inte är null vid en insert. Är det ett nullvärde ska insert satsen inte köras.
Tabell: Person
pid
namn
--------
triggrern ska således kontrollera att namn inte är null... och då inte köra insert.
Mina försök att klara detta har varit löjliga... men jag misstänker att det är en instead of (for) trigegr jag ska nyttja... men så mkt mer har jag inte gjort. Nån som har nån trigger på lager så att jag får se hur man ska göra.?
MVH / AndreasSv: Trigger - kolla not null
Fundering.
Att kontrollera värdet i applikationen som ska spara ner det, är inte ett alternativ?
Då slipper du att göra en roundtrip till DB:n för att konstatera något som du kan fånga i klienten.
//HåkanSv:Trigger - kolla not null
/AndreasSv: Trigger - kolla not null
OK, har inte jobbat med/använt triggers, så jag kan tyvärr inte bistå med exempel.
En SP gör tricket i min värld (än så länge).
//HåkanSv:Trigger - kolla not null
create trigger person_insert
on person
instead of insert
as
begin
declare @tnamn varchar(20)
select @tnamn=namn from inserted
if @tnamn is null
raiserror('Ej tillåtet med null',1,1)
else
insert into person values (@tnamn)
end
Kanske inte en optimal lösning, men den verkar fungera .
/AndreasSv: Trigger - kolla not null
Kul att du kom vidare själv.
Det brukar vara så, en massa stångande och lite AHA.
//HåkanSv:Trigger - kolla not null
/Rickard