Turvenn.no
Webutvikler kurs ASP.NET, C#, CSS mm.

WebRessurs.no - Webprogrammering og ressurs innen ASP, ASP.NET, PHP, SQL, HTML, CSS, Javascript, XML, C#, VB, Flash  mm.

Brukernavn: 
Passord:

Registrèr deg Glemt passord?
Logg deg inn




  ASP.net (199)
  ASP 3.0 (111)
  PHP (30)
  HTML (66)
  SQL (89)
  CSS (46)
  XML (7)
  JavaScript (78)
  Diverse kode (13)


  Programmering (22)
  System og drift (15)
  Trafikk og inntekt (11)
  Guider og tips (22)
  Nyttig lesestoff (23)
  Web forum (604)
  Link galleri (566)


  ASP.NET kurs(5)
  CSS kurs (2)
  JQuery kurs (2)


  Øk trafikken (8)
  Facebook App. (4)
  Microsoft CEO (6)


  Server & web
  Internett & epost
  Systemverktøy
  Sikkerhet
  Fildeling
  Lyd & media
  Diverse software


  Domenesalg
  Metagenerator
  Websikre farger
  WebMail


  Bli medlem!
  Siste innlegg
  Gjestebok
  Tips en venn
  Kontakt oss
  Forsiden




Kode Artikler
Linker


Mål internetthastigheten din.


Recursive query - slette et helt subtree med mange nivåer

av Øyvind A. Isaksen
 
Denne artikkelen viser hvordan man i ved hjelp av recursive query / spørring i SQL Server 2005 feks kan slette et helt sub-tre med ubegrensede antall nivåer. La si vi har en tabell som lagrer noder i en treeview, denne tabellen er da relatert til seg selv med Id og ParentId. Vi ønsker så å slette en node, og ALLE noder under denne noden. Her viser vi hvordan dette gjøres!

-------------------------------------------------
Tabellen er bygget opp slik:
-------------------------------------------------

ID (Primærnækkel)
ParentId
Name
Active


-------------------------------------------------
Slik kan info fra tabellen se ut:
-------------------------------------------------

Article1
Article2
|- Article 4
| |- Article6
| |- Article7
| |-Article8
| |-Article9
| |-Article10
|- Article 5
Article3


-------------------------------------------------
Stored procedure for å slette et sub-tree:
-------------------------------------------------

-- =============================================
-- Author: Øyvind Isaksen, SoftMaker LTD.
-- =============================================

ALTER PROCEDURE [dbo].[spDeleteSubTree]
(
@Id smallint
)
AS
BEGIN

SET NOCOUNT ON;

WITH MyRecursiveResult(Id,ParentId)
AS
(
--Anchor member definition
SELECT Id, ParentId
FROM tblContent
WHERE Id = @Id
UNION ALL
--Recursive member definition
SELECT a.Id, a.ParentId
FROM tblContent a
JOIN MyRecursiveResult r ON r.Id = a.ParentId
)
--Statement that executes the CTE
--SELECT * FROM MyRecursiveResult
UPDATE tblContent set Deleted='1' where Id IN (SELECT id FROM MyRecursiveResult)

END

WebRessurs.no anbefaler:    StackOverflow.com | Experts-Exchange.com | W3schools | ASP.NET | Codeproject | 4Guys
WebRessurs.no er utviklet og drives av SoftMaker
Sett som startside: [ ]. Bokmerk denne siden: [ klikk ]. Sitemap. http://twitter.com/webressurs_no/. Antall brukersesjoner: 13367155.
Copyright WebRessurs.no © 2003 - 2018
Jobbsøk.no - Jobbsøknad, CV, intervju, tips og lenker