我是靠谱客的博主 机智黑夜,最近开发中收集的这篇文章主要介绍[SQLServer][DTS][存储过程]保存所有的DTS包到指定的路径,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[s_SavePackages]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[s_SavePackages]
GO

Create procedure s_SavePackages
@Path varchar(128)
as
/*

*/

 set nocount on

declare @objPackage int
declare @PackageName varchar(128)
declare @rc int
declare @ServerName varchar(128)
declare @FileName varchar(128)
declare @FilePath varchar(128)
declare @cmd varchar(2000)
 
 select  @ServerName = @@ServerName ,
  @FilePath = @Path
 
 if right(@Path,1) <> ''
 begin
  select @Path = @Path + ''
 end
 
 -- create output directory - will fail if already exists but ...
 select @cmd = 'mkdir ' + @FilePath
 exec master..xp_cmdshell @cmd
 
 
create table #packages (PackageName varchar(128))
 insert  #packages
  (PackageName)
 select  distinct name
 from msdb..sysdtspackages
 
 select @PackageName = ''
 while @PackageName < (select max(PackageName) from #packages)
 begin
  select @PackageName = min(PackageName) from #packages where PackageName > @PackageName

  select @FileName = @FilePath + @PackageName + '.dts'

  exec @rc = sp_OACreate 'DTS.Package', @objPackage output
  if @rc <> 0
  begin
   raiserror('failed to create package rc = %d', 16, -1, @rc)
   return
  end

  exec @rc = sp_OAMethod @objPackage, 'LoadFromSQLServer' , null,
   @ServerName = @ServerName, @Flags = 256, @PackageName = @PackageName
  if @rc <> 0
  begin
   raiserror('failed to load package rc = %d, package = %s', 16, -1, @rc, @PackageName)
   return
  end
  
  -- delete old file
  select @cmd = 'del ' + @FileName
  exec master..xp_cmdshell @cmd, no_output
  
  exec @rc = sp_OAMethod @objPackage, 'SaveToStorageFile', null, @FileName
  if @rc <> 0
  begin
   raiserror('failed to save package rc = %d, package = %s', 16, -1, @rc, @PackageName)
   return
  end
  
  exec @rc = sp_OADestroy @objPackage
 end
go

exec s_SavePackages 'c:'

转载于:https://www.cnblogs.com/qwerttyy/archive/2006/05/26/409625.html

最后

以上就是机智黑夜为你收集整理的[SQLServer][DTS][存储过程]保存所有的DTS包到指定的路径的全部内容,希望文章能够帮你解决[SQLServer][DTS][存储过程]保存所有的DTS包到指定的路径所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部