Løst: hvordan man kontrollerer, hvornår en lagret procedure sidst blev ændret i sql-serveren

Sidste ændring: 09/13/2023

Inden for databasestyring er evnen til at kontrollere og overvåge ændringer eller ændringer foretaget af lagrede procedurer i SQL Server et afgørende aspekt for at opretholde dataintegritet og driftseffektivitet. Lagrede procedurer, som i det væsentlige er forberedte SQL-koder, der gemmes og genbruges efter behov, kan ændres af databaseadministratorer af en række forskellige årsager, såsom for at forbedre ydeevnen, rette fejl, justere til ændringer i forretningskrav osv. Hvis de ikke spores korrekt. , kan disse ændringer utilsigtet føre til problemer, herunder datatab eller korruption, systemineffektivitet og forvirring blandt udviklingsteams.

SELECT 
    name AS procedure_name,
    create_date,
    modify_date
FROM sys.procedures

Ovenstående kode er et eksempel på, hvordan man henter den sidste ændringsdato for alle lagrede procedurer i den aktuelle database. Denne kode bruger sys.procedures-katalogvisningen til at hente de nødvendige oplysninger.

Forståelse af koden

Efter at have udført den førnævnte SQL-kommando, vil SQL Serveren give en liste over lagrede procedurer sammen med deres tilsvarende oprettelse og sidste ændringsdatoer.

Resultatet kan forstås som følgende:

  • procedure_name: Dette er navnet på den lagrede procedure.
  • create_date: Dette repræsenterer datoen og tidspunktet, hvor den lagrede procedure blev oprettet.
  • modify_date: Dette afspejler datoen og tidspunktet, hvor den lagrede procedure sidst blev ændret.

I dette scenarie er sys.procedures katalogvisning er især nyttig, da den indeholder en række for hver lagret procedure i den nuværende database. De væsentlige kolonner for det aktuelle mål er 'navn', 'opret_dato' og 'ændre_dato'.

Mere om sys.procedures Katalogvisning og andre nyttige funktioner

Som tidligere nævnt er sys.procedures katalogvisning spiller en afgørende rolle i sporing af lagrede procedureændringer. Det gemmer ikke kun tidsbaserede metadata vedrørende procedurer, men inkluderer også procedurespecifik information såsom procedurens objekt-id, skema-id, typebeskrivelse og mere.

Andre kolonner i sys.procedures-katalogvisningen kan hjælpe med at forstå sammenhængen omkring ændringer i procedurer yderligere. For eksempel angiver kolonnen 'type_desc', om proceduren er en normal PROCEDURE, en udvidet procedure (EXTENDED_PROCEDURE), eller om den er en del af SQL Servers replikeringssystem (REPLICATION_PROCEDURE).

Derudover giver SQL Server også funktionalitet, som kan bruges til at spore ændringer af lagrede procedurer som f.eks. sys.sql_modules systemkatalogvisning og OBJECT_DEFINITION indbygget funktion.

Samlet set er det bydende nødvendigt at udnytte disse værktøjer i overensstemmelse hermed for effektiv databasestyring og for at bevare integriteten af ​​dine gemte SQL-procedurer. Evnen til at spore og gennemgå ændringer giver et revisionsspor til fejlfinding, til optimering og til at opretholde klarhed og konsistens i samarbejdsmiljøer.

Relaterede indlæg: