Jag undrar om någon vet hur (om det går) man kan hämta ett värde och i samma sql-sats uppdatera det fältet man hämtar. Denna SP borde fungera. Har dock bara testat den på SQL Server 2000. Inte många som känner till Modulo operatorn % i T-SQL. Vet inte om det är bättre eller sämmre en en case sats.Uppdatera databas och hämta värde samtidigt?
Ex. En siffra som skall gå i en cirkel från 1 till 100 och sedan börja från början igen när den når 100. Systemet är väldigt tidskrävande och därför måste jag hämta siffran och samtidigt i samma sql-sats ändra siffran. Det kommer att vara 1000 anrop i sekunden så jag kan nog inte göra en select-sats och sedan göra en update för du finns det risk att flera få ut samma värde ur databasen och det får inte ske.
Har ni något förslag på detta problem så skulle jag vara tacksam.Sv: Uppdatera databas och hämta värde samtidigt?
/*
CREATE TABLE Numbers (
Number int NOT NULL
)
INSERT Numbers VALUES (1)
*/
CREATE PROCEDURE GetAndUpdateNumber
AS
DECLARE @Number int
UPDATE Numbers SET
@Number = Number =
CASE
WHEN Number = 100 THEN 1
ELSE Number + 1
END
SELECT @Number
GOSv: Uppdatera databas och hämta värde samtidigt?
CREATE PROCEDURE GetAndUpdateNumber
AS
DECLARE @Number int
UPDATE Numbers SET @Number = Number, Number = ((Number-1) % 100) + 1
SELECT @Number
GO