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å?
ON DUPLICATE KEY i MS SQL Server?
3 svar · 570 visningar · startad av Ramzeus
Följande kanske kan vara av intresse:
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1769317&SiteID=1
Okej
Det bekräftade mina misstankar lite att det inte finns i MS SQL-server...
Tack för länktipset.
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