Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

Bulk export SSIS packages stored in the msdb library

2025-01-22 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

Use msdb

Go

IF OBJECT_ID ('msdb.dbo.usp_ExportSSISPkgs') IS NOT NULL

DROP PROCEDURE dbo.usp_ExportSSISPkgs

Go

CREATE PROCEDURE dbo.usp_ExportSSISPkgs

@ exportPath NVARCHAR (2000) ='D:\ temp\'

AS

BEGIN

DECLARE @ pkgData XML, @ pkgName NVARCHAR (1000), @ pkgFolder NVARCHAR (4000), @ cmd NVARCHAR (MAX)

PRINT'--Info: Create temp tables.'

IF (OBJECT_ID ('tempdb.dbo.tbl_SSISPkgXML') IS NOT NULL)

BEGIN

PRINT'--Info: Drop existing temp table tempdb.dbo.tbl_SSISPkgXML.'

DROP TABLE tempdb.dbo.tbl_SSISPkgXML

END

CREATE TABLE tempdb.dbo.tbl_SSISPkgXML (ID INT IDENTITY (1jue 1), PkgName NVARCHAR (1000) NULL, PkgFolder NVARCHAR (MAX) NULL

PkgID VARCHAR (40) NULL,PkgData XML NULL)

PRINT'--Info: Insert Package data into tempdb.dbo.tbl_SSISPkgXML.'

IF (SELECT CHARINDEX ('SQL Server 2005 cycles, @ @ VERSION)) > 0

-- 2005 version

BEGIN

-- Use recursive CTE to get FULL path for SSIS packages on msdb

SET @ cmd='WITH tbl_ssispkgfolder (FullPath, folderid)

AS

(SELECT CONVERT (NVARCHAR (MAX),''\ root''), folderid FROM msdb.dbo.sysdtspackagefolders90

WHERE parentfolderid IS NULL

UNION ALL

SELECT CONVERT (NVARCHAR (MAX), t.FullPathdiagnosis'\'+ s.foldername), s.folderid

FROM msdb.dbo.sysdtspackagefolders90 s

JOIN tbl_ssispkgfolder t ON s.parentfolderid=t.folderid)

INSERT INTO tempdb.dbo.tbl_SSISPkgXML (PkgName,PkgID,PkgFolder,PkgData)

SELECT p.name, p.id, f.FullPath, CAST (CAST (packagedata AS varbinary (MAX)) AS XML)

FROM msdb.dbo.sysdtspackages90 p JOIN tbl_ssispkgfolder f ON p.folderidacef.folderident'

EXEC (@ cmd)

END

ELSE

-- 2008 or later version

BEGIN

SET @ cmd='WITH tbl_ssispkgfolder (FullPath, folderid)

AS

(SELECT CONVERT (NVARCHAR (MAX),''\ root''), folderid FROM msdb.dbo.sysssispackagefolders

WHERE parentfolderid IS NULL

UNION ALL

SELECT CONVERT (NVARCHAR (MAX), t.FullPathdiagnosis'\'+ s.foldername), s.folderid

FROM msdb.dbo.sysssispackagefolders s

JOIN tbl_ssispkgfolder t ON s.parentfolderid=t.folderid)

INSERT INTO tempdb.dbo.tbl_SSISPkgXML (PkgName,PkgID,PkgFolder,PkgData)

SELECT p.name, p.id, f.FullPath, CAST (CAST (packagedata AS varbinary (MAX)) AS XML)

FROM msdb.dbo.sysssispackages p JOIN tbl_ssispkgfolder f ON p.folderid=f.folderid

WHERE ISNULL (p. Originalism') NOT LIKE''System Data Collector Package''

;'

EXEC (@ cmd)

END

PRINT'--Info: Enable xp_cmdshell to allow access File System from SQL Engine'

EXEC sp_configure 'show advanced options',1

RECONFIGURE WITH OVERRIDE

EXEC sp_configure 'xp_cmdshell',1

RECONFIGURE WITH OVERRIDE

PRINT'--Info: Start exporting...'

DECLARE cur_DtsxFile CURSOR FOR SELECT PkgName,PkgData, PkgFolder FROM tempdb.dbo.tbl_SSISPkgXML

OPEN cur_DtsxFile

FETCH NEXT FROM cur_DtsxFile INTO @ pkgName, @ pkgData, @ pkgFolder

WHILE (@ @ FETCH_STATUS=0)

BEGIN

PRINT'--Info: Create Package folder under'+ @ exportPath+'

SET @ cmd= N'EXEC xp_cmdshell N''mkdir "'+ @ exportPath + @ pkgFolder+'\"''

EXEC (@ cmd)

SET @ cmd=N'bcp "SELECT PkgData FROM tempdb.dbo.tbl_SSISPkgXML'

+ 'WHERE PkgName=' + @ pkgName+' AND PkgFolder='+ @ pkgFolder+' "queryout"'

+ @ exportPath+ @ pkgFolder+'\'+ @ pkgName+'.dtsx "- T-w-S"'+ @ @ SERVERNAME+' "'

SET @ cmd = N'EXEC xp_cmdshell N'''+@cmd +'

PRINT'--Info: Export package'+ QUOTENAME (@ pkgName) +'to'+ @ exportPath + @ pkgFolder+''

EXEC (@ cmd)

FETCH NEXT FROM cur_DtsxFile INTO @ pkgName,@pkgData,@pkgFolder

END

CLOSE cur_DtsxFile

DEALLOCATE cur_DtsxFile

END

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report