Na koji nacin mogu u nekoj INSERT proceduri proveriti da li zapis vec postoji? Ok,imam PK u tabeli,ali mi je potrebno da proverim npr. "Name" kolonu, ukoliko postoji record sa istim Name-om, da handlam dalje u kodu, i prikazem neku poruku.
Spreciti dupli insert
Zaključano
Zakačeno
Probaj sa nekim SELECT upitom da proveris da li vec taj podatak postoji, ako vec postoji ne radi nista(ili prikazi poruku da podatak vec postoji) ako ne postoji(odosno rezulta upita je 0) onda radi INSERT.
Potpis
http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
Moze nesto ovako:
Code:
IF EXISTS (SELECT name FROM dbo.Table WHERE name= @name)
Show Error()
ELSE
INSERT STATEMENT
.......
IF EXISTS (SELECT name FROM dbo.Table WHERE name= @name)
Show Error()
ELSE
INSERT STATEMENT
.......
Obratite paznju na transakcionu izolaciju ako je neophodno. Ukoliko se ta procedura cesto poziva, a narocito u multi-user sistemima neophodno je odrzati lock izmedlju select i insert jer dva procesa mogu da udju u select i vrate o rows i da onda oba ulete u insert.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Moze nad tabelom da kreiras Unique Key i da baza sama stiti sebe
ALTER TABLE [dbo].[Tabela] ADD CONSTRAINT [IX_Tabela] UNIQUE NONCLUSTERED
(
[Name] ASC
) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
ALTER TABLE [dbo].[Tabela] ADD CONSTRAINT [IX_Tabela] UNIQUE NONCLUSTERED
(
[Name] ASC
) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
Ako vec 'Name' mora da bude jedinstveno, pitam se, pitam se, kako izgleda i cemu sluzi postojeci PRIMARY KEY? Vreme koje cete sada utrositi da resite problem sprecavanja unosa duplikata, bice mnogo duze, nego da ste pokusali da razumno definisete PK. I ako resite problem nekako, proverom na front endu, bas za svaki unos, osta je onaj problem sto je spomenuo mmix, a koji je veoma neugodan za resavanje. Toliko je neugodan da pametni ljudi ucine sve da do toga uopste ne dodje. Nekako kao "dilama je a) leciti ili b) uopste ne dobiti AIDS ili sifilis".
A posle svega, uvek ostaje mogucnost da neko uradi bulk inserst, pa resenje na front endu nece pomoci.....
A posle svega, uvek ostaje mogucnost da neko uradi bulk inserst, pa resenje na front endu nece pomoci.....
Cesta je promena zahteva, pa se zbog toga traze alternativna i ne bas najbolja resenja. Service not a project...