sql >> Databasteknik >  >> RDS >> Sqlserver

Programmatiskt hämta SQL Server lagrad procedur källa som är identisk med källan som returneras av SQL Server Management Studio gui?

EXEC sp_helptext 'your procedure name';

Detta undviker problemet med INFORMATION_SCHEMA-metoden där den lagrade proceduren avbryts om den är för lång.

Uppdatering:David skriver att detta inte är identiskt med hans sproc...kanske för att det returnerar raderna som "poster" för att bevara formateringen? Om du vill se resultaten i ett mer "naturligt" format kan du använda Ctrl-T först (mata ut som text) och det ska skrivas ut precis som du har skrivit in det. Om du gör detta i kod, är det trivialt att göra en foreach för att sammanställa dina resultat på exakt samma sätt.

Uppdatering 2:Detta kommer att förse källan med en "CREATE PROCEDURE" snarare än en "ALTER PROCEDURE", men jag vet inget sätt att få den att använda "ALTER" istället. Lite trivialt, eller hur?

Uppdatering 3:Se kommentarerna för lite mer insikt om hur du underhåller din SQL DDL (databasstruktur) i ett källkontrollsystem. Det är verkligen nyckeln till denna fråga.



  1. Behöver Oracle SQL för att dela upp datum/tidsintervall efter dag

  2. PostgreSQL:Ge alla behörigheter till en användare på en PostgreSQL-databas

  3. SQL-spårning, händelse 10046 i Oracle:trcsess, tkprof-verktyg

  4. HubSpot ODBC-drivrutin