Sletning af records

Tags:    c#

<< < 12 > >>
Selvom jeg er helt ny i C#, har jeg påtaget mig en lille opgave :-)

Jeg har en MS SQL database, hvor dem der har designet den, har lavet en date/time stamp felt, defineret so nvarchar(50) :S

Alle records har så denne date/time stamp, f.eks. 12/14/2005 10:11:59 AM.

Opgaven går ud på at slette alle records, ældre end en valgt dato. Jeg søger absolut ikke en færdig løsning, men bare den rigtige indgangsvinkel.

Skulle jeg lave det i et af de sprog jeg allerede kender, ville jeg:

Læse alle records i en tabel, én af gangen.

For hver record, vil jeg pille datoen ud af recordens nvarchar og bytte rundt, så der står 20051214 i et numerisk felt, i stedet for 12/14/2005.

Hvis recordens numeriske dato så er <= indtastningsdatoen vil jeg slette recorden.

Kan det laves mere optimalt? Der er et par millioner records i nogle af tabellerne og jeg forudser et performance issue, hvis jeg laver det på den måde jeg har skitseret.

Det er ikke et program der skal køres ret tit.



Indlæg senest redigeret d. 14.09.2009 10:32 af Bruger #9814
Ellers skal du bruge en JOIN, og det er jeg ikke så pro til endnu.. :)



Super indlæg :-) For min egen skyld, er jeg nødt til at lave en program-version, så dem med databasen selv kan køre programmet i fremtiden.

Tak for alle input!



Fold kodeboks ind/udSQL kode 


Nu tør jeg ikke lige prøve for sjovt på prod. versionen af databasen,

Men det vil sige at dette vil virke:

Fold kodeboks ind/udSQL kode 


For AM (eller PM) står også i den streng som ligger i databasen, men det er måske altid en del at stampen?



Indlæg senest redigeret d. 14.09.2009 13:32 af Bruger #9814
Lav en test version af databasen, med noget dummy input og prøv det af, min PHP/SQL server er lige stået af...



Det kan sagtens laves i sql.

man kan konvertere det til et datetime med det samme, ud fra formatet.

delete from mytabel where convert(mycol, datetime, 105) < blabla

bemærk jeg ikke kan huske koderne (105) 100%, men søg i books online efter formatet



Jeg prøver at tjekke op på det Brian. Tak for input!



Fold kodeboks ind/udSQL kode 


For lige at lukke SQL delen, så er det testet og det virker!

Så det burde være nemt at implementere i C# nu - selv for mig.

Tak til alle for hjælpen.



<< < 12 > >>
t