Showing posts with label BACKUP. Show all posts
Showing posts with label BACKUP. Show all posts

Wednesday, September 13, 2017

MSSQL: Export all packages from MSDB package store

Quick script to generate DTUTIL statements to export all SSIS package from the MSDB package store to the file system using DTUTIL:


;
WITH FOLDERS AS
(
-- Capture root node
SELECT
cast(PF.foldername AS varchar(max)) AS FolderPath
, PF.folderid
, PF.parentfolderid
, PF.foldername
FROM
msdb.dbo.sysssispackagefolders PF
WHERE
PF.parentfolderid IS NULL
-- build recursive hierarchy
UNION ALL
SELECT
cast(F.FolderPath + '\\' + PF.foldername AS varchar(max)) AS FolderPath
, PF.folderid
, PF.parentfolderid
, PF.foldername
FROM
msdb.dbo.sysssispackagefolders PF
INNER JOIN
FOLDERS F
ON F.folderid = PF.parentfolderid
)
, PACKAGES AS
(
-- pull information about stored SSIS packages
SELECT
P.name AS PackageName
, P.id AS PackageId
, P.description as PackageDescription
, P.folderid
, P.packageFormat
, P.packageType
, P.vermajor
, P.verminor
, P.verbuild
, suser_sname(P.ownersid) AS ownername
FROM
msdb.dbo.sysssispackages P
)
SELECT
-- assumes default instance and localhost
-- use serverproperty('servername') and serverproperty('instancename')
-- if you need to really make this generic
'DTUTIL /sourceserver ' + @@SERVERNAME + ' /SQL "'+ F.FolderPath + '\\' + P.PackageName + '" /En file;"F:\\Archief\\SSIS\\'+CONVERT(VARCHAR(50),GETDATE(),112)+'\\' + P.PackageName +'.dtsx";4 /Q' AS cmd
FROM
FOLDERS F
INNER JOIN
PACKAGES P
ON P.folderid = F.folderid
-- uncomment this if you want to filter out the
-- native Data Collector packages
WHERE
F.FolderPath <> '\Data Collector'
and F.FolderPath not Like 'Maintenance%'









Till Next Time

Thursday, April 3, 2014

Full backup databases starting with i8

/* Daily Full backup of i8* databases
   20140403 JJM (c) i8 solutions
*/

DECLARE @eSQL NVARCHAR(MAX)

DECLARE C cursor for
    select 'BACKUP DATABASE ['+name+'] TO  DISK = N''D:\i8\BU\'+ name +'.bak'' WITH NOFORMAT,
    INIT, 
    NAME = N'''+ name + '-Full Database Backup'',
    SKIP,
    NOREWIND,
    NOUNLOAD, 
    STATS = 10' from master.sys.databases
    where name like 'i8%'

OPEN C
FETCH NEXT FROM C INTO @eSQL

WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC (@eSQL);
FETCH NEXT FROM C INTO @eSQL
END

CLOSE C
DEALLOCATE C
Till Next Time