推荐一款好用的SQL2000 DTS备份迁移软件:DTS Backup 2000

公司的SQL Server 2000的DTS无故不能打开编辑DTS文件,错误信息如下。猜测原因为Windows补丁升级造成。

只好重新安装以前用过一次的[URL=http://www.sqldts.com/242.aspx]DTSBackup2000[/URL]的小软件,也因此放到Blog上面推荐一下这个很好用的免费软件。

尽管Sql Server 2005已经问世几年,但我相信很多公司还仍然大量的使用着Sql Server 2000的服务器,依然有很多在使用SQL 2000的DTS。那么DTS Backup 2000作为一款DTS包备份、恢复、迁移的免费工具,肯定会获得你的喜爱。

DTS Backup 2000介绍

下面是来自官方的介绍:

<br/>DTS Backup 2000 is a tool designed to help with both backup and transfer of DTS packages. The DTSBackup file format and direct transfer of packages between SQL Servers options do not suffer the loss of layout or annotations as you get when the DTS object model. It is of course free to use. <br/>

大家知道SQL server 2005以后,DTS已经被SSIS所替换,[URL=http://www.sqldts.com]SQLDTS.COM[/URL]也顺应这种发展,升级为[URL=http://www.sqlis.com]SQLIS.COM[/URL]。

DTS Backup 2000下载地址

官方地址:[URL=http://www.sqldts.com/redir.aspx?1242]http://www.sqldts.com/redir.aspx?1242[/URL]

DTS Backup 2000安装步骤如下

DTS Backup 2000使用说明

使用相当简单,支持4种Storage Location:Local Packages,Meta Data Services Packages,Structured Storage File, DTSBackup File。可以文件到文件、文件到数据库、数据库到数据库,同时支持备份加密功能。

Baan ERP SQL Query 中Exists的用法举例

很久都没有写Baan的报表以及查询了,上午远在深圳的Allen通过MSN告诉我一个小小的需求,于是用到了Exists的查询,代码分享如下:

正常的关联写法

select
tdsls401.orno,
tdsls401.pono,
tdsls401.sqnb
from
tdsls401, | Sales Order Lines
whinh430, | Shipment
whinh431 | Shipment Lines
where
whinh431.worn = tdsls401.orno and
whinh431.wpon = tdsls401.pono and
whinh431.wseq = tdsls401.sqnb and
whinh430.pcsp = tcyesno.yes and
whinh431.shpm = whinh430.shpm and
(whinh431.worg = whinh.oorg.sales or
whinh431.worg = whinh.oorg.purchase)
order by tdsls401.orno,tdsls401.pono

反选的时候,用Not Exists

select
tdsls401.orno,
tdsls401.pono,
tdsls401.sqnb
from
tdsls401 | Sales Order Lines
where not exists
(select *
from
whinh430, | Shipment
whinh431 | Shipment Lines
where
whinh431.worn = tdsls401.orno and
whinh431.wpon = tdsls401.pono and
whinh431.wseq = tdsls401.sqnb and
whinh430.pcsp = tcyesno.yes and
whinh431.shpm = whinh430.shpm and
(whinh431.worg = whinh.oorg.sales or
whinh431.worg = whinh.oorg.purchase))
order by tdsls401.orno,tdsls401.pono

其实第一种正常查询中,查询多个表中关联出现的结果集也可以用Exists:

select
tdsls401.orno,
tdsls401.pono,
tdsls401.sqnb
from
tdsls401 | Sales Order Lines
where exists
(select *
from
whinh430, | Shipment
whinh431 | Shipment Lines
where
whinh431.worn = tdsls401.orno and
whinh431.wpon = tdsls401.pono and
whinh431.wseq = tdsls401.sqnb and
whinh430.pcsp = tcyesno.yes and
whinh431.shpm = whinh430.shpm and
(whinh431.worg = whinh.oorg.sales or
whinh431.worg = whinh.oorg.purchase))
order by tdsls401.orno,tdsls401.pono

SQL Server 多表更新方法

早晨从济南返回,接着到公司上班。继续没完成的项目开发,遇到了批量数据导入后,多表更新的问题。记得以前用access实现起来很简单的,可是到了SQL Server居然行不通了。只好求助搜索引擎,分享一下吧。

问题描述:

2个表:Table1 Table2 字段Table1.Field1关联Table2.Field1
要求:关联更新TblA中的字段Field2,Field3,使Table1.Field2=Table2.Field2,Table1.Field3=Table2.Field3

SQL语句写法:

UPDATE Table1
SET Field2=b.Field2,Field3=b.Field3
FROM Table1 a, Table2 b
WHERE a.Field1=b.Field1

A sample of Flat File Source Data conversion failed

今天上午遇到的问题,当从文本文件倒入数据到Sqlserver 2005时出现一下错误:"[Flat File Source [1]] Error: Data conversion failed. The data conversion for column “Column 2” returned status value 4 and status text “Text was truncated or one or more characters had no match in the target code page.”. "。数据来源是Baan系统,出错的字段是供应商名称,查了一下Oracle数据库,知道这个字段长度为60个字符。而在做Data Conversion的时候,默认的转换为Unicode String[DT_WSTR] 50(见下图),这里只能改成60才行。

title

但是关键问题不是这里!请往下看。

文本文件的数据源在SSIS建立好了以后,每一个字段类型默认都是string [DT_STR],而OutputColumn的长度都是50。问题就在这里!只需要按照下图的位置设定一下数据类型或者长度就可以了!我这里试了修改数据类型为“text stream [DT_TEXT]”,测试通过;然后修改OutputColumn的长度为60,同样测试通过!

title

SQL Server 2005 SSIS学习:Data Conversion Object

今天在使用SSIS从Sql Server 2000导出数据到Sql Server 2005中的时候出现了以下错误。

<br/><br/>Error at StaffViewBak [OLE DB Destination [16]]: Column "Staff_Name" cannot convert between unicode and non-unicode string data types.<br/><br/>Error at StaffViewBak [DTS.Pipeline]: One or more component failed validation.<br/><br/>Error at StaffViewBak: There were errors during task validation.<br/><br/> (Microsoft.DataTransformationServices.VsIntegration)<br/><br/>

这个原因是因为原数据库和目标数据库的字符类型不同造成的,我从网上搜了一下,没有中文资料,英文资料简单的介绍了一下。我试了几种,发现还是用“DataConversion”比较好。

title

Data Conversion can convert between unicode and non-unicode string data types

Is Null

一个简单的问题,但是也许很多人都用错.

当数据库的一个字段Field的默认值为Null时,如何在SQL的查询\更新\添加时做判断,又如何在ASP语言中做判断?

SQl语句中

Select Field from Table Where Field is Null
or
Select Field from Table Where Field is Not Null

Update Table Set Field=Null Where Field =?

Insert Into Table (Field, TransDate) Values (NULL, GETDATE())
ASP中

错误的用法
If Rs(“Field”) Is Null Then
Update
End if

正确的用法
If IsNull(Rs(“Field”)) Then
Update
End if

下一步的计划和发展方向

最近得到了一份Offer,决定了一下步的发展方向和研究领域:
1、数据库方面,以MSSQL为主,渐渐转向Oracle数据库
2、网页设计方面渐渐转入Flash website and Flash game
3、网络编程方面从原来的ASP环境逐渐升级到.net(C#)版本
4、个人职业发展从Designer or Programmer 变化为Team work and Team leader
5、Flash方面着重研究Actionscript2的编程,然后就是基于Database和XML的Flash应用设计
6、系统管理方面开始对Web server\Exchange Server\Ftp Server进行直接的管理和应用
7、英语学习方面,因为的确吃了苦头,坚持每天学习英语,提高英语听说读写能力

这个周末去书店和Dearbook.com逛一下,掏几本好书看看。