微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer2000用存储过程将DTS包文件加载到服务器上

最近用sqlserver2000给客户做了DTS导数据的包,现在要把这些包迁移到其它的服务器上,方法总如下:

方法1:在要迁移的服务器上把包打开->另存为->选择“位置”中的“sqlserver”->选择要导入的服务器,用户密码,点击保存就过去了。

方法2:

1)在要迁移的服务器上把包打开->另存为->选择“位置”中的“结构化存储文件”,在文件名中填入要保存的位置。

2)在要导入的服务器里,建下面的存储过程,然后运行即可:

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

Create procedure s_LoadPackagetoServer
@PackageName varchar(128),
@FileName varchar(500),
@Username varchar(100),
@Password varchar(100)
as
/*
exec s_LoadPackagetoServer
@PackageName = 'mypackage',
@FileName = 'c:\dtspckgs\mypackage.dts',
@Username = 'sa',
@Password = 'pwd'
*/
declare @objPackage int
declare @rc int

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,'LoadFromStorageFile',null,
   @UncFile = @FileName,@password = null
if @rc <> 0
begin
   raiserror('Failed to load package rc = %d,package = %s',@rc,@PackageName)
   return
end

exec @rc = sp_OAMethod @objPackage,'SavetosqlServerAs',
   @NewName = @PackageName,@ServerName = @@ServerName,@ServerUserName = @Username,@ServerPassword = @Password
if @rc <> 0
begin
   raiserror('Failed to load package rc = %d,@PackageName)
   return
end
go

exec s_LoadPackagetoServer    'mypackage','c:\DTS_AN2CP_DIC.dts',   'sa','sa'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐