sql >> Database teknologi >  >> RDS >> Sqlserver

Programmatisk hente SQL Server lagret procedure kilde, der er identisk med kilden returneret af SQL Server Management Studio gui?

EXEC sp_helptext 'your procedure name';

Dette undgår problemet med INFORMATION_SCHEMA-tilgangen, hvor den lagrede procedure afbrydes, hvis den er for lang.

Opdatering:David skriver, at dette ikke er identisk med hans sproc...måske fordi det returnerer linjerne som 'records' for at bevare formateringen? Hvis du vil se resultaterne i et mere 'naturligt' format, kan du bruge Ctrl-T først (output som tekst), og det skal printe det ud præcis, som du har indtastet det. Hvis du gør dette i kode, er det trivielt at gøre en indsats for at sammensætte dine resultater på nøjagtig samme måde.

Opdatering 2:Dette vil give kilden en "CREATE PROCEDURE" i stedet for en "ALTER PROCEDURE", men jeg kender ingen måde at få den til at bruge "ALTER" i stedet for. Det er dog en triviel ting, ikke?

Opdatering 3:Se kommentarerne for mere indsigt i, hvordan du vedligeholder din SQL DDL (databasestruktur) i et kildekontrolsystem. Det er virkelig nøglen til dette spørgsmål.



  1. Hvordan indlæses et stort antal strenge for at matche med Oracle-databasen?

  2. Kopier en tabel fra en database til en anden i Postgres

  3. Bestem Oracle null ==null

  4. Top PostgreSQL-sikkerhedstrusler