01. december 2008 - 22:18
Der er
8 kommentarer og 1 løsning
Hjælp til stored procedure
Hey eksperten, Jeg er i gang med at lave en stored procedure, som skal sørge for at der bliver indsat data i to forskellige tabeller "på samme tid" Min stored procedure ser sådan ud: ALTER PROCEDURE dbo.InsertWish ( @Name varchar(100), @Price int, @Seen varchar(100), @Color varchar(100), @Date varchar(100), @WishlistId int ) AS SET NOCOUNT ON; INSERT INTO Wish(Name, Price, Seen, Color, Date) VALUES(@Name, @Price, @Seen, @Color, @Date) DECLARE @WishId int SET @WishId = (SELECT Id FROM Wish WHERE Name = @Name) INSERT INTO Wishlist_Wish(WishlistId, WishId) VALUES(@WishListId, @WishId) Det skal lige siges, at det er første gang jeg roder med SP! Så bær over med mig hvis I kan ;) Jeg får den fejl, at den ikke kan sætte NULL ind som værdi i Id i min Wish tabel (hvilket jo er klart nok den ikke kan) Hvordan får man sin SP til at fatte, at det Id bliver talt op automatisk når der bliver sat noget ind i Wish tabellen? På forhånd tak for hjælpen. Med venlig hilsen, Bo
Annonceindlæg fra Cognizant
01. december 2008 - 22:24
#1
wish.id skal vaere en IDENTITY kolonne
01. december 2008 - 22:25
#2
Ioevrigt maa du kunne: INSERT INTO Wish(Name, Price, Seen, Color, Date) VALUES(@Name, @Price, @Seen, @Color, @Date) INSERT INTO Wishlist_Wish(WishlistId, WishId) VALUES(@WishListId, SCOPE_IDENTITY())
01. december 2008 - 22:30
#3
Hey arne_v, Hmm, jeg er ikke helt 100 på hvad du mener ;) men jeg prøvede med: DECLARE @WishId int SET @WishId = (SELECT @@IDENTITY FROM Wish WHERE Name = @Name) Men stadig samme problem. Jeg har nok misforstået/ikke fattet hvad du mente med det :)
01. december 2008 - 22:32
#4
Uden lige at have prøvet dit sidste forslag, så tror jeg ikke det vil virke. Min pointe med SPen er, at den skal først sætte noget i min Wish tabel og derefter skal den tage det, den lige har sat ind's Id og sætte ind i Wishlist_Wish tabellen. Håber det giver mening :) det er en mange-til-mange relation jeg har mellem to tabeller, så jeg har oprettet en ny tabel til at kæde dem sammen.
01. december 2008 - 22:39
#5
IDENTITY er en egenskab ved kolonnen i tabellen - ikke noget der skal laves i din SP
01. december 2008 - 22:40
#6
SCOPE_IDENTITY() henter den sidst genererede identity, saa det boer virke.
01. december 2008 - 22:42
#7
DOH!! Ja selvfølgelig! Hvor er det tåbeligt hehe ;) det der alzheimers du ved.. Havde glemt at sætte den til identity i db'en. Tusind tak for hjælpe! :) smider du lige et svar?
01. december 2008 - 23:10
#8
svar
01. december 2008 - 23:12
#9
således! tak igen :)
Computerworld tilbyder specialiserede kurser i database-management