Jag skulle behöva göra följande: Så dum i hu...t jag är. Glömde ju att man kan öra så här:)Kopiera in post i samma tabell?
Kopiera en post, uppdatera ett fält, sätta in den i den ursprungliga tabellen igen.
Jag har försökt med SELECT INTO men det går ju inte att göra på en existerande tabell(eller har jag missat nåt?)
Nån som har förslag på hur jag kan lösa detta? Kopierar in koden så är det kanske lättare att förstå.
<code>
ALTER PROC copyPodCastItem
@newPath VARCHAR(150),
@oldPath VARCHAR(150)
AS
IF(EXISTS(SELECT itemID FROM podCastItem WHERE link = @oldPath))BEGIN
BEGIN TRAN
SELECT podCastInfoID, title, link, uniqueIdent, [desc], length, typeID, categoryID, pubDate
INTO podCastItem_copy FROM podCastITem
WHERE link = @oldPath
IF(@@error <> 0)GOTO noInsert
UPDATE podCastItem_copy
SET
link = @newPath,
uniqueIdent = @newPath
WHERE link = @oldPath
IF(@@error <> 0)GOTO noInsert
SELECT * INTO podCastItem
FROM podCastItem_copy
IF(@@error <> 0) GOTO noInsert
DROP TABLE podCastItem_copy
COMMIT TRAN
END
ELSE GOTO noFound
noFound:
RAISERROR('Det gick inte att hitta posten.', 16, 1)
RETURN
noInsert:
ROLLBACK TRAN
RAISERROR('Det gick inte att hitta posten.', 16, 1)
RETURN
</code>Sv: Kopiera in post i samma tabell?
<code>
ALTER PROC copyPodCastItem
@newPath VARCHAR(150),
@oldPath VARCHAR(150)
AS
IF(EXISTS(SELECT itemID FROM podCastItem WHERE link = @oldPath))BEGIN
BEGIN TRAN
CREATE TABLE podCastItem_copy
(
podCastInfoID INT,
title VARCHAR(50),
link VARCHAR(150),
uniqueIdent VARCHAR(150),
[desc] VARCHAR(500),
length INT,
typeID INT,
categoryID INT,
pubDate DATETIME
)
INSERT INTO podCastItem_copy (podCastInfoID, title, link, uniqueIdent, [desc], length, typeID, categoryID, pubDate)
SELECT podCastInfoID, title, @newPath, @newPath, [desc], length, typeID, categoryID, pubDate
FROM podCastITem
WHERE link = @oldPath
IF(@@error <> 0)GOTO noInsert
INSERT INTO podCastItem (podCastInfoID, title, link, uniqueIdent, [desc], length, typeID, categoryID, pubDate)
SELECT podCastInfoID, title, link, uniqueIdent, [desc], length, typeID, categoryID, pubDate
FROM podCastITem_copy
IF(@@error <> 0)GOTO noInsert
DROP TABLE podCastItem_copy
COMMIT TRAN
RETURN
END
ELSE GOTO noFound
noFound:
RAISERROR('Det gick inte att hitta posten.', 16, 1)
RETURN
noInsert:
ROLLBACK TRAN
RAISERROR('Det gick inte att kopiera posten.', 16, 1)
RETURN
</code>