sql >> Database >  >> RDS >> Sqlserver

Programmatisch opgeslagen SQL Server-procedurebron ophalen die identiek is aan de bron die wordt geretourneerd door de SQL Server Management Studio-gui?

EXEC sp_helptext 'your procedure name';

Dit vermijdt het probleem met de INFORMATION_SCHEMA-aanpak waarbij de opgeslagen procedure wordt afgebroken als deze te lang duurt.

Update:David schrijft dat dit niet identiek is aan zijn sproc...misschien omdat het de regels retourneert als 'records' om de opmaak te behouden? Als u de resultaten in een meer 'natuurlijk' formaat wilt zien, kunt u eerst Ctrl-T gebruiken (uitvoer als tekst) en het moet het precies afdrukken zoals u het hebt ingevoerd. Als je dit in code doet, is het triviaal om een ​​foreach te doen om je resultaten op precies dezelfde manier samen te stellen.

Update 2:Dit zal de bron voorzien van een "CREATE PROCEDURE" in plaats van een "ALTER PROCEDURE", maar ik ken geen manier om het in plaats daarvan "ALTER" te laten gebruiken. Toch een beetje triviaal, nietwaar?

Update 3:Zie de opmerkingen voor wat meer inzicht over het onderhouden van uw SQL DDL (databasestructuur) in een broncontrolesysteem. Dat is echt de sleutel tot deze vraag.



  1. Uw Cassandra-cluster migreren

  2. Hoe NTILE() werkt in SQL Server

  3. Functies met variabel aantal invoerparameters

  4. verschil tussen plan uitleggen en uitvoeringsplan