WEB开发网
开发学院数据库MSSQL Server 误删除SSIS中的"Maintenance Plans"文件夹的恢复收... 阅读

误删除SSIS中的"Maintenance Plans"文件夹的恢复收藏

 2010-04-20 00:00:00 来源:WEB开发网   
核心提示:在SQL Server 2005/2008中,维护计划的功能通过SSIS包来完成,误删除SSIS中的"Maintenance Plans"文件夹的恢复收藏,如果不小心在SSIS管理中删除了"Maintenance Plans"文件夹,则在SQL Server中建立维护计划的时候会

在SQL Server 2005/2008中,维护计划的功能通过SSIS包来完成。如果不小心在SSIS管理中删除了"Maintenance Plans"文件夹,则在SQL Server中建立维护计划的时候会出现问题,如下图所示。

误删除SSIS中的"Maintenance Plans"文件夹的恢复收藏

在Management studio中创建误删除的"Maintenance Plans"文件夹,如下图所示。

误删除SSIS中的"Maintenance Plans"文件夹的恢复收藏

建立好"Maintenance Plans"文件夹之后,可以正常建立维护计划,但是建立的维护计划并不会显示,在SSIS的"Maintenance Plans"文件夹下倒是可以找到相应的SSIS包。

误删除SSIS中的"Maintenance Plans"文件夹的恢复收藏

出现这个问题的原因在于:维护计划向导根据文件夹名称来存储维护计划的SSIS包,但"维护计划"通过查询视图"sysmaintplan_plans"来获取维护计划相关的SSIS包的,查询这个视图的脚本,可以看到其内容:

EXEC msdb..sp_helptext 'sysmaintplan_plans' 
 
CREATE VIEW sysmaintplan_plans 
 
AS 
 
SELECT 
 
... 
 
FROM 
 
msdb.dbo.sysssispackages AS s 
 
WHERE 
 
(s.folderid = '08aa12d5-8f98-4dab-a4fc-980b150a5dc8' and s.packagetype = 6)

从视图脚本可以看出,视图使用了folderid,而不是名称来获取内容,我们新建的"Maintenance Plans"文件夹基本上不可能是这个id,所以要更新这个视图,使其引用正确的folder id,正常的folder id可以执行下面的查询获得。

SELECT * 
 
FROM msdb.dbo.sysssispackagefolders    -- sql 2005 的表名为:sysdtsfolders90 
 
WHERE foldername = N'Maintenance Plans' 
 
    AND parentfolderid = '00000000-0000-0000-0000-000000000000'

Tags:删除 SSIS quot

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接