[ duchess @ 16.06.2007. 23:33 ] @
E ovako mi stoji problem:

Treba da iz tabele temp prebacim, procedurom, podatke u tabelu podaci. I jedna i druga tabela imaju iste kolone: userName, artikliid. Ja sam pokusala ovako nesto:

CREATE PROCEDURE dbo.Kupljeno
@userName nvarchar(50),
@artikliid int
as
insert into podaci
select userName,artikliid
from temp
where userName=@userName

ali ne prebacuje mi podatke, vec mi izbaci ovu gresku:

Insert Error: Column name or number of supplied values does not match table definition.

tabela temp se sastoji od:
tempid int primary key, userName nvarchar(50), artikliid int

tabela prodaja:
prodajaid int primary key, userName nvarchar(50), artikliid int, tempid int foreign key


Takodje me zanima, da li moze u ovoj istoj proceduri da se definise i delete blok, koji ce nakon prebacivanja podataka iz temp u prodaja, sve podatke za datog usera obrisati iz tabele temp?
[ Zidar @ 18.06.2007. 15:31 ] @
Lepo ti greska kaze 'ne slaze se broj kolona u INSERT naredbi i u tabeli'
Moras da dodas spisak kolona koje se popunjavaju INSERT naredbom.

CREATE PROCEDURE dbo.Kupljeno
@userName nvarchar(50),
@artikliid int
as
INSERT INTO podaci
(userName,artikliid) -- ovo treba da dodas, ovo je spisak kolona
SELECT
userName,artikliid -- ovo treba da se slozi sa listom kolona po poziciji i tipu podataka
FROM temp
WHERE userName=@userName

Bez navodjenja liste moze samo u slucaju kad SELECT deo vraca absolutno iste kolone kao i tabela u koju se INSERTuju podaci.