日期:2014-05-18  浏览次数:20562 次

请教大家有关SQLServer2000 DTS工具的使用问题
将文本数据导入到数据库,如何获得每次导入的行数(这个数显示在SQL运行弹出的对话框)将其记录在已建的表里。曾经将oracle数据库里的数据导入SQLServer数据库,利用@@rowcount获得每次导入的行数。但是文本数据导入,@@rowcount的值为0。

------解决方案--------------------
在msdb数据库里面,有2个表,sysdtspackagelog ,sysdtssteplog
有个字段叫progesscount。

记得在包里面打开日志功能才有日志数据。
------解决方案--------------------
一个DTS中可以包含若干个转换以及其他动作(比如发mail,exec sp等等),
所以所谓的这个DTS“每次导入的行数”的说法,应该改为 每个转换“每次导入的行数”。

可以利用全域参数来做。
在每个转换时,
 1. 新增全域变数,如 @cnt
 2. 点选“来源”里的某一列(最好是不为null)的
 3. 点选“新增", 选择“ActiveX Script”(一般第一个)
 4. 编辑function ,如VB script language代码如下
Function Main()
DTSGlobalVariables("@cnt").Value=DTSTransformPhaseInfo.CurrentSourceRow
Main = DTSTransformStat_OK
End Function

 5. 顺利的话,那个@cnt就是你要的行数