Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna pomoc oko INSERT naredbe.

[es] :: MS SQL :: Potrebna pomoc oko INSERT naredbe.

[ Pregleda: 2097 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

draksa
Dragan Radivojevic
Nis

Član broj: 88015
Poruke: 44
77.46.224.*



Profil

icon Potrebna pomoc oko INSERT naredbe.05.04.2007. u 16:58 - pre 207 meseci
Imam sledecu tablelu:
create table Lista
(
ID int primary key not null,
Naziv nvarchar(50) not null,
UserName nvarchar(20) not null
)

Prilikom svako novog unosa hocu da ID bude za 1 veci od narednog. Kako da to izvedem?

Znam da trenutno najveci ID dobijam kao:
select max(id) from Lista; ,
ali nemam pojma kako da to uklopim u insert naredbu sa Naziv-om i UserName-om. Bilo bi lepo da mi neko napise primer u kome se unosi nova lista sa nazivom:'blablabla' za username='tralala':))
Unapred hvala!

 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Potrebna pomoc oko INSERT naredbe.05.04.2007. u 17:44 - pre 207 meseci
Nisi rekao koji DBMS koristiš, da dobiješ konkretan odgovor?
Većina ima "autoincrement", a ako ga ne koristiš to možeš i ručno iz same aplikacije.
Za određeni atribut (u tvom slučaju ID) pronađeš onaj sa najvećom vrednošću i povećaš ga za jedan. Ako nema ni jedan slog, konstatuješ nulu i dodeliš vrednost 1. Ukoliko se obriše neki slog, dolazi do izmene redosleda, rupa, pa ako DBMS to sam ne update -uje, bila je tema i o tome, pa pogledaj SQL Mozgalica br. 3...
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

draksa
Dragan Radivojevic
Nis

Član broj: 88015
Poruke: 44
77.46.224.*



Profil

icon Re: Potrebna pomoc oko INSERT naredbe.05.04.2007. u 18:14 - pre 207 meseci
Zaboravih da navedem DBMS.
Dakle radi se o SQL Server Express.
 
Odgovor na temu

draksa
Dragan Radivojevic
Nis

Član broj: 88015
Poruke: 44
77.46.224.*



Profil

icon Re: Potrebna pomoc oko INSERT naredbe.05.04.2007. u 21:25 - pre 207 meseci
Jos jedna napomena:
Ja znam sta treba da uradim ali to ne umem:((!!

Dakle, znam da je potrebno da pronadjem element sa najvecim ID-om i da ga povecam za jedan. Ali je problem sto ne umem da napisem sql naredbu koja to radi u okviru insert naredbe. Samo pronalazenje najveceg ID-a nije nikakav problem ali to ne umem da uklopim u INSERT!

Kako treba da izgleda insert naredba koja to odradjuje?

 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
*.mediaworksit.net.

Jabber: DarkMan


Profil

icon Re: Potrebna pomoc oko INSERT naredbe.06.04.2007. u 15:26 - pre 207 meseci
Prvi nacin - preko varijable:
Code:

  declare @id int

  select @id = max(ID) + 1 from Lista

  insert into Lista(ID, Naziv, UserName) values(@id, 'naziv', 'username')



Drugi nacin - direktno umetanje selecta:
Code:


  insert into Lista(ID, Naziv, UserName)
  select max(ID) + 1, 'naziv, 'username' 
    from Lista

 
Odgovor na temu

zelbi

Član broj: 17006
Poruke: 17
*.vtx.ch.



Profil

icon Re: Potrebna pomoc oko INSERT naredbe.12.04.2007. u 02:26 - pre 207 meseci
create table Lista
(
ID int identity(1, 1) primary key not null,
Naziv nvarchar(50) not null,
UserName nvarchar(20) not null
)


autoincrement ti je identity(1, 1) u MS SQL i to je najbolje rijesenje.

ako upotrebljavas max(id) obavezno blokiraj cijelu tabelu :

Code:

declare @id int
select @id = max(ID) + 1 from Lista With(TablockX)
insert into Lista(ID, Naziv, UserName) values(@id, 'naziv', 'username')


 
Odgovor na temu

[es] :: MS SQL :: Potrebna pomoc oko INSERT naredbe.

[ Pregleda: 2097 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.