Exportera SQL-lagrad procedur till en fil och generera dess skript

i tidigare artiklar har vi granskat en allmän algoritm för att hitta och ta bort ofullständiga öppna transaktioner i SQL Server-databaser, skapat en tabell för att fixa ofullständiga transaktioner och en CRUD-lagrad procedur och implementerat många inställningar som gör vårt dokumentarbetsflöde produktivt och praktiskt.

låt oss nu exportera och testa en lagrad procedur, generera dess kod och förvandla den till ett skript – det kommer att köras på någon värd eller en grupp värdar genom att ange korrekta inmatningsparametrar.

exportera lagrad procedur i SQL Server

det kan också vara ganska användbart att generera ett skript för att skapa nödvändiga databasobjekt, till exempel generera ett skript för att exportera en lagrad procedur till en fil eller kopiera den lagrade proceduren till andra lösningar. För att göra detta, följ följande steg:

  • i Object Explorer högerklickar du på din databas
  • Välj uppgifter från snabbmenyn som visas
  • välj kommandot generera skript
välja kommandot generera skript
Fig. 1 välja kommandot generera skript
  • markera objekten till script
markera de objekt du vill skriva
Fig. 2 Välja de objekt du vill script
  • i fönstret Ange Skriptalternativ väljer du skript till fil
välja skript till fil
Fig 3. Välja skript till fil
  • kör det genererade skriptet mot måldatabasen.

när alla dessa steg utförs får vi ett genererat skript av den exporterade lagrade proceduren.

testa en lagrad procedur

låt oss återgå till en lagrad procedur som vi har skapat i del 2. Om vi drar markören till en lagrad procedur kommer en rullgardinsmeny att dyka upp:

rullgardinsmenyn lagrad procedur
Fig 4. Rullgardinsmenyn lagrad procedur

för att fungera korrekt bör din lagrade procedur ha en beskrivning. Om det inte har lagts till ännu, kör följande skript:

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Identification of frozen transactions (forgotten ones that do not have active requests) with their subsequent removal' , @level0type=N'SCHEMA',@level0name=N'srv', @level1type=N'PROCEDURE',@level1name=N'AutoKillSessionTranBegin'
GO

eller gå till objektets utökade egenskaper:

lägga till den lagrade procedurens beskrivning
Fig.5 lägga till den lagrade procedurens beskrivning

du kan också lägga till en beskrivning med den här metoden.

lagrad procedurs kodgenerering

du kan ringa det med ett högerklick på en lagrad procedurs rullgardinsmeny och välj sedan ”Script Object as CREATE / ALTER”:

välja
Fig.6 Om du väljer ”Script Object as CREATE/ ALTER” i snabbmenyn

när du har gjort detta kommer ett skript för objektändringen att dyka upp – i vårt fall kommer det att vara den lagrade procedurändringen. Om det inte finns något objekt skulle det finnas ett skript för att skapa det. Detta skript kan enkelt flyttas till rätt MS SQL Server instanser.

vrida lagrad procedurkod till ett skript

du kan välja ”konvertera EXEC till skript” i en rullgardinsmeny:

välja
Fig.7 Om du väljer kommandot ”Konvertera EXEC till skript” i SQL Complete main menu

istället för att anropa en lagrad procedur skapas ett skript, inmatningsparametrar blir variabler och innehållet i lagrad procedur blir ett skript. Det är en praktisk funktion när du testar din kod:

resultatet av att skapa ett skript från en lagrad procedur
Fig.8 resultatet av att skapa ett skript från en lagrad procedur

nu kan du köra det härledda skriptet på vilken värd eller en grupp värdar som helst genom att ställa in inmatningsparametrarnas korrekta värden.

Query creation history

Låt oss nu granska en annan viktig funktionalitet – SQL Complete: Execution History som visar tidigare frågor. För att göra detta, klicka på SQL Complete: Execution History-knappen:

välja
Fig.9 välja kommandot ”Exekveringshistorik” i SQL Complete huvudmeny

du kommer att se följande fönster:

visningen av de exekverade skripten
Fig.10 visningen av de exekverade skripten

det övre vänstra hörnet av fönstret innehåller filter för ord och tidsintervall, medan det högra hörnet visar antalet frågor som hittades baserat på data som matats in i filtret. Den nedre sidan av fönstret visar frågan som valts från tabellen.

tabellen består av följande kolumner:

  1. Status – visar om en fråga har slutförts (vit bock i en grön cirkel) eller inte (vitt kors i en röd cirkel)
  2. QueryText – visar frågetext
  3. storlek (byte) – visar storlek mätt i byte
  4. utförande på – visar datum och tid när en fråga utfördes
  5. varaktighet – visar den tid det tog en fråga som ska köras
  6. fil – visar filens namn och en fullständig sökväg till den
  7. server – visar serverns namn
  8. användare – visar en användare som körde ett skript
  9. databas – visar en användare som körde ett skript databas där ett skript utfördes

sökningen efter kolumnerna ”QueryText” och ”Execution On” görs i filtren ”Sök” och ”från/till”.

du kan också sortera datakolumner i stigande eller fallande ordning genom att klicka på en rubrik i en riktig kolumn. Som standard är kolumnsorteringen ”Execution On” aktiverad i fallande ordning.

du kan sortera flera kolumner samtidigt genom att hålla ned en SHIFT-knapp. Du kan också ställa in mer komplexa filter genom att klicka på filtertecknet:

ställa in kolumnfiltrering
Fig.11 ställa in kolumnfiltrering

låt oss nu ange vårt lagrade procedurnamn ”AutoKillSessionTranBegin” i ” Sök ” – filtret:

lagrad procedursökning i
Fig.12 lagrad procedursökning på fliken ”Exekveringshistorik”

som ett resultat får vi en fullständig skapningshistorik för srv.AutoKillSessionTranBegin procedur som beskrivits tidigare.

om du högerklickar på en riktig tabellrad kan du öppna ett skript i ett nytt fönster eller kopiera det till urklippet för att klistra in det där det behövs:

kopiera det valda skriptet från
Fig.13 kopiera det valda skriptet från fliken” Exekveringshistorik ”

du kan öppna ett skript i ett nytt fönster genom att dubbelklicka på önskat skript i en tabellrad.

du kan också ange hur länge exekveringshistoriken lagras, max frågestorlek och historiklagringsvägen:

den
Fig.14. Kommandoinställningarna” Exekveringshistorik ” i SQL Complete

du kan läsa mer information om Exekveringshistorikfunktionen här.

det är allt, folk. Den nya funktionaliteten har utvecklats, testats och flyttats till lämpliga MS SQL Server-instanser.

  • författare
  • Senaste inlägg
Evgeniy Gribkov

Evgeniy Gribkov

Evgeniy är en MS SQL Server databasanalytiker, utvecklare och administratör. Han är involverad i utveckling och testning av SQL Server-databashanteringsverktygen. Evgeniy skriver också SQL Server – relaterade artiklar.

Evgeniy Gribkov

Senaste inlägg av Evgeniy Gribkov (se alla)

  • skapa lagrad procedur för att släppa lokala tillfälliga tabeller i SQL Server-16 juni 2021
  • dedikerat Länkkällkontrollförvar-6 maj 2021
  • Databasversionskontroll med källkontroll för SQL Server-Maj 5, 2021

sql complete, sql server, sql server transaktioner, sql lagrad procedur

Leave a Reply

Din e-postadress kommer inte publiceras.