Hejsan! Hej DECLARE @invarde int, @nyvarde int En fråga som kanske är dum, men det verkar som att ID är primarykey? Om det är det så varför inte använda en "Identity" kolumn?Dynamisk insert?
Jag har ett litet problem här med SQL Server. Jag har en post i min databas (tabellen test) som är enligt följande:
ID, VARDE
1, 'Ett test meddelande ...'
2, 'Ett ytterligare test meddelande ...'
3, 'Ett ytterligare ytterligare test meddelande ...'
Nu är det som så att jag vill inserta ett nytt värde för id 2, men innan jag gör de vill jag kolla om det finns något värde med id 2. Gör det de vill jag flytta på denna post till en ny post med id 4 (det högsta som finns i tabellen) och sedan inserta (uppdatera) mitt värde för id 2.
Någon som hänger med på vad jag är ute efter?
// NickeSv: Dynamisk insert?
Du kan använda följande i en storedprocedure
IF EXISTS(SELECT varde FROM test WHERE ID=2)
BEGIN
-- Uppdatera post där ID=2
UPDATE test SET ID=4 WHERE ID=2
END
-- Lägg till en ny post med ID=2
INSERT INTO ...
Är det högsta värdet alltid 4, eller behöver du först ta reda på vad det högsta värdet är?
/LisbetSv:Dynamisk insert?
SET @nyvarde = {det id et gäller}
IF EXISTS(SELECT varde FROM test WHERE ID=@invarde)
BEGIN
SELECT @nyvarde = max(id) + 1 FROM test
UPDATE test SET ID=@nyvarde WHERE ID=@invarde
END
INSERT INTO ...
Tog mig lite frihet att dynamisera koden lite... *lerSv: Dynamisk insert?