26. marts 2008 - 10:38Der er
16 kommentarer og 1 løsning
MS SQL 2005 Trigger
Hejsa...
Jeg har aldrig lavet en DB trigger før, så nu er det vist på tide ;)
Jeg ønsker at lave en simpelt trigger, som blot sletter alle rækker i min tabel "MyTable" hvis kolonnen "CreatedDate" (DateTime) er senere end dags dato og klokkeslæt.
SailGP er en spændende gren af sejlsporten, der byder på intens højhastighedskonkurrence mellem 10 landshold, der sejler identiske F50-katamaraner.
13. maj 2024
Slettet bruger
26. marts 2008 - 10:58#1
gå ind i rediger eller design på den pågælende tabel og find knappen med trigger. nu har du muligheden for at lave en new, update eller delete og her kan du skrive din SQL. eks. delete from MyTable where CreatedDate > now() ...eller noget i den still, det skulle være til at finde ud af.
Synes godt om
Slettet bruger
26. marts 2008 - 11:00#2
men hvis jeg var dig ville jeg lave en Job schedule som udførte den same SQL måske en gang dagligt. Express versionen har ikke denne job mulighed. Jobs ligger under Management/SQL Server Agent
Hej igen, jeg er total newbie indefor dette område...så du må meget gerne fortælle mig i detaljer hvordan jeg skal gøre...hvad er forskellen på en trigger og "Job schedule"...det lyder som noget rigtigt, idet at jeg ønsker at der skal ryddes op i databasen dagligt :)
Synes godt om
Slettet bruger
26. marts 2008 - 12:29#4
en triger afvikler en SQL enten når du opretter en ny record "New", f.eks kan den insætte en CreateDate = Now() så du ikke skal gøre det manuelt, eller "Update" hvis du ændre noget i en record, her kan du f.eks verificere det intastede og til sidst "Delete" hvor du f.eks kan slette records i en anden tabel for at ryde op. Triggers er en godt sted at gemme triviel SQL kode :-)
Jobs er stort set selvforklarende, du følger bare fanebladene når du opretter en ny, med en aktiverings schedule, f.eks Daglig, ugentligt o.s.v. på det tidspunkt jobet bliver aktiveret, vil den afvikle et eller flere steps af SQL kode, som kan være hvad som helst. Meget simpelt eller avanceret, men lige til at gå til. Et job kan f.eks bruget til automatisk backup eller replikereing eller som du er inde på, slette gamle records.
Synes godt om
Slettet bruger
26. marts 2008 - 12:32#5
Husk at starte SQL server Agent (Den skal være grøn) du kan også sætte den til at gøre det selv ved opstart.
Synes godt om
Slettet bruger
26. marts 2008 - 12:56#6
"New" skulle selvfølgelig være "INSERT" :-/
her er et eksempl på en "UPDATE" trigger:
CREATE TRIGGER [Update] ON [dbo].[M_Personnel] FOR UPDATE
AS
UPDATE M_Personnel SET Updated = getdate (), [User] = SYSTEM_USER FROM inserted
Det skal slette alle rækker i tabel "MyTable" hvis kolonnen "CreatedDate" er senere end dags dato og klokkeslæt.
Mvh.
Synes godt om
Slettet bruger
26. marts 2008 - 15:35#8
hmm...
følg træet i venstre side...Management/Sql Server Agent/Jobs Højreklik på Jobs og vælg New Job og du har en dialogboks Giv den et navn Klik på fanen [Steps] Tryk på knappen [New] Giv den et Step name Vælg Database I det store felt "Command" skriver du denne SQL:
DELETE FROM MyTable WHERE CreatedDate > GetDate()
Klik [OK] Klik på fanen [Schedules] Tryk på [New Schedule] Giv den et navn Klik på knappen [Change] Og nu kan du sættet schedulen op, og klik [ok] hele vejen ud igen
Det skulle være det. Hvis du vil køre den med det samme, kan du højre klikke på den nye schedule og vælge start job.
Ja det kunne jeg selvfølgelig lave som en nødløsning, men vil gerne lige give Jobs en ekstra chanche...
Altså hvad hedder CD'en hvo¨rpå den fulde udgave af Management Studio ligger på... For jeg har SQL Server 2005 liggende Dev. edt. med der kan jeg ikke finde den på...jeg har pt. Express installeret og den siger derfor også bare, at jeg allerede har en nyere version installeret - men kan heller ikke se den ved at browse cd'en...?-/
Synes godt om
Slettet bruger
27. marts 2008 - 11:46#13
du skal bare afinstalere den express du har nu, *.mdf filerne bliver liggende hvor de er nu og så installere SQL 2005. Management studio er en del af installationen. Til sidst skal du Attache de gamle databaser (*.mdf) så er du køreklar
Synes godt om
Slettet bruger
27. marts 2008 - 11:48#14
SQL server køre som en service og det er her Jobs ligger. denne service er den eneste forskel fra express og developer versionen
Hmm... den kan jeg ikke hjælpe dig med, det må være fordi at din host har fravalgt agenten, såe hvis du vil leje med jobs må du installere sql serveren lokalt
Hej igen ...nåå jeg kan ikke få lov til at oprette services i et shared enviroment...så nu hvor det ikke er mere krævende det jeg ønsker, lægger jeg blot koden i en stored procedure.
Du skal have mange tak for hjælpen!
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.