加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 14:10:33 所属栏目:MsSql教程 来源:网络整理
导读:最近用sqlserver2000给客户做了DTS导数据的包,现在要把这些包迁移到其它的服务器上,方法总如下: 方法1:在要迁移的服务器上把包打开-另存为-选择“位置”中的“SQLserver”-选择要导入的服务器,用户,密码,点击保存就过去了。 方法2: 1)在要迁移的服

最近用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:dtspckgsmypackage.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'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读