如果DTS 中的要导入导出的数据库名发生变化了,怎么办?

AntingZ 2006-05-11 09:07:44
比如以前是从DB1导入到db2,现在想从db3导入db4,这4个数据库的结构是一样的。
做dts设计时是从db1到db2的导入,但是想从db3导入db4时就不能用了,虽然我在dts设计器中将连接的源、目标数据库都改成db3和db4了,但是"转换数据任务属性“里的SQL语句还是SELECT ... From db1.dbo.table1 等,
怎样将这些db1全部改成db3?
...全文
255 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ms2006 2006-05-14
  • 打赏
  • 举报
回复
有这么麻烦吗 动态任务属性就是干这事的 做一个INI文件 将数据库名字写里面去 在INI文件里更改,每次它会去找INI文件
liangpei2008 2006-05-13
  • 打赏
  • 举报
回复
关注:)
AntingZ 2006-05-13
  • 打赏
  • 举报
回复
研究了一下,发现还是可以通过VB.NET代码进行修改的,大概下面这个样子:

Dim p As New DTS.Package2
p.LoadFromSQLServer(".", "sa", "1", DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default, "", "", "", "dts_old", "")

Dim t As DTS.Task
Dim ct As DTS.DataPumpTask2
t = p.Tasks.Item(2)
ct = t.CustomTask
ct.SourceSQLStatement = ct.SourceSQLStatement.Replace("tcyc_data_old", "tcyc_data")

p.Tasks.Remove(2)
p.Tasks.Add(t)

p.SaveToSQLServerAs("dts_new", ".", "sa", "1", DTS.DTSSQLServerStorageFlags.DTSSQLStgFlag_Default)
AntingZ 2006-05-11
  • 打赏
  • 举报
回复
@ zlp321002
thanks! 关键是我的DTS中有100+表需要转换,如果是这样的话就需要修改100+次,这样的话用修改数据库名的方法还来的快一些

有没有通过编程的方法批量修改 转换数据任务属性 的可能?
AntingZ 2006-05-11
  • 打赏
  • 举报
回复
联机丛书 中有这样的话:

如果在两个连接之间定义了转换,而您需要更改源连接或目的连接,则转换可能不再有效。因此,DTS 设计器提示您是否将转换属性重置为默认值。如果决定重置转换,每个与该连接关联的转换的属性均将被删除。然而,查找不会受影响。

是不是我要的这种办法无法实现呀
zlp321002 2006-05-11
  • 打赏
  • 举报
回复
--SQL Server 2000 好象必须修改 转换数据任务属性.
AntingZ 2006-05-11
  • 打赏
  • 举报
回复
我将db3的数据库名改成db1,导出完成后再修改回去是可以的,有没有办法不修改数据名直接修改DTS属性就可以完成新的导入的?

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧