16. december 2004 - 13:42Der er
4 kommentarer og 1 løsning
Append query
Jeg har en tabel med projektindhold. Hvordan kan jeg kopiere bestemte rækker til samme tabel, og samtidig ændre værdien i en enkelt række ex:
INSERT INTO dbo.tbl_Project_Content (componentID, Category, Quantity, ProjectID) SELECT componentID, Category, Quantity, ProjectID FROM dbo.tbl_Project_Content WHERE (ProjectID = 49)
Den kopierer korrekt rækker hvor projectid=49 Jeg vil imidlertid gerne have ændret projectid på de rækker der indsættes til en anden værdi Kan det lade sig gøre. Skal jeg evt. vej af en temp tabel, som opdateres og indsættes.
er det til at forstå hvad jeg mener...? Hilsen Prince10
INSERT INTO dbo.tbl_Project_Content (componentID, Category, Quantity, ProjectID) SELECT 2*componentID+1, Category, Quantity, ProjectID FROM dbo.tbl_Project_Content WHERE (ProjectID = 49)
men hvis beregningen når over en vis kompleksitet, så er SQL nok ikke det rette sprog, så bør du lave beregningen i din applikation (ASP/C#/VB/whatever) altså med en SELECT, beregning i koden og mange simple INSERT.
Den her virker: INSERT INTO dbo.tbl_Project_Content (componentID, Category, Quantity, ProjectID) SELECT componentID, Category, Quantity, 55 AS ProjectID FROM dbo.tbl_Project_Content WHERE (ProjectID = 49) Kan den lades om til en StoredProc, således at jeg har 55 og 49 indsættes via variabler - Det er til en .net applikation på en sql-server. Hilsen prince10
Åbenbart sådan her... CREATE PROCEDURE [dbo].[AppendProjContent] @NEWProjektID int, @OLDProjektID int AS INSERT INTO dbo.tbl_Project_Content (componentID, Category, Quantity, ProjectID) SELECT componentID, Category, Quantity, @NEWProjektID AS projectid FROM dbo.tbl_Project_Content WHERE (ProjectID = @OLDProjektID) GO
prince10
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.