1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| ---------------------------------------------------------------------
-- Exporter le code de toutes les procédures stockées dans un fichier
---------------------------------------------------------------------
SELECT SQL.definition + CHAR(10) + CHAR(13) + 'GO' toto
INTO ##TOTO
FROM sys.procedures PROCS
JOIN sys.sql_modules SQL ON SQL.object_id = PROCS.object_id
WHERE PROCS.name not like 'dt%' AND PROCS.name not like 'sp%'
ORDER BY PROCS.name
DECLARE @szBCP VARCHAR(256);
SET @szBCP = 'bcp "SELECT * FROM ##TOTO" queryout C:\Procs.sql -T -c';
EXEC master.dbo.xp_cmdshell @szBCP;
DROP TABLE ##TOTO;
------------------------------------------------------------------------------------------
-- Exporter le code de plusieurs procédures stockées avec un fichier par procédure stockée
------------------------------------------------------------------------------------------
-->>>> A EXECUTER SUR LA BD DEPUIS LAQUELLE ON SOUHAITE REALISER L'EXPORT
SET NOCOUNT ON
DECLARE CUR_PROC CURSOR FOR
SELECT name
FROM sys.procedures
FOR READ ONLY
DECLARE @szNomProc SYSNAME
OPEN CUR_PROC
FETCH NEXT FROM CUR_PROC INTO @szNomProc
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT definition
INTO ##PROC_TEXT
FROM sys.sql_modules
WHERE OBJECT_NAME(object_id) = @szNomProc
DECLARE @szBCP VARCHAR(512);
SET @szBCP = 'bcp "SELECT * FROM ##PROC_TEXT" queryout C:\' + @szNomProc + '.sql -T -c';
EXEC master.dbo.xp_cmdshell @szBCP, NO_OUTPUT;
DROP TABLE ##PROC_TEXT;
FETCH NEXT FROM CUR_PROC INTO @szNomProc
END
DEALLOCATE CUR_PROC |
Partager