webForumDet fria alternativet

ON DUPLICATE KEY i MS SQL Server?

3 svar · 570 visningar · startad av Ramzeus

RamzeusMedlem sedan mars 200642 inlägg
#1

Finns det någon motsvarighet till INSERT ... ON DUPLICATE KEY UPDATE (som det är i MySQL) i MS SQL Server?
Eller måste man göra en SELECT först som kollar om det redan finns rader, med de angivna nycklarna, som man vill uppdatera iniformation på?

Peter SMedlem sedan dec. 20025 483 inlägg
#2

Följande kanske kan vara av intresse:
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1769317&SiteID=1

RamzeusMedlem sedan mars 200642 inlägg
#3

Okej

Det bekräftade mina misstankar lite att det inte finns i MS SQL-server...
Tack för länktipset.

RamzeusMedlem sedan mars 200642 inlägg
#4

En lösning tror jag :)

Hittade ett sätt som jag tror kommer kunna fungera:

IF (SELECT COUNT(*) FROM Messages WHERE InventoryID=10 AND MessageTypeID=27)>0 
	UPDATE Messages SET TimeStamp=CURRENT_TIMESTAMP WHERE InventoryID=10 AND MessageTypeID=27
 ELSE
 	INSERT INTO Messages (InventoryID, MessageTypeID, TimeStamp) VALUES(10, 27, CURRENT_TIMESTAMP)

InventoryID och MessageTypeID är unika nycklar (10 och 27 är exempelvärden).
Detta bör motsvara följande i MySQL:

INSERT INTO Messages (InventoryID, MessageTypeID, TimeStamp) 
VALUES(10, 27, CURRENT_TIMESTAMP) 
ON DUPLICATE KEY UPDATE TimeStamp=CURRENT_TIMESTAMP
130 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)