论文部分内容阅读
ACCESS和SQL Server都是我们常用的数据库软件。有时候我们需要把Access中的数据库转到Sql Server中,但由于两种数据库在设计、格式等方面的不同,导致在转化的过程中往往会发生一些问题。这里,我们介绍一些常见问题的解决方法。
为了确保记录的唯一性,在ACCESS数据库中我们会将某些类型设置为自动编号类型。但转入到sql server时,并没有将它设为自动编号型。这时候我们需要在SQL创建语句中加上identity,表示自动编号。或者把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”。
Access中的一些时间和日期函数在转化为Sql Server时需要修改。常见的有:now()、time()和date(),在SqlServer中都要改成getdate()。Access中的datediff('d', time1, time2)函数在Sql Server中要改成datediff(day, time1, time2)。datediff('ww', time1, time2) 函数在Sql Server中要改成datediff(week, time1, time2)等等。
在Sql Server中,和日期有关的字段,Sql Server默认为smalldatetime型,我们最好将它改为datetime型,因为datetime型的范围比smalldatetime型大。如果用smalldatetime型,那么由Access转化过来时,会发生失败的可能;而用datetime类型,一般转化都会成功。
对两种数据库进行操作的sql语句不完全相同,例如:删除student表中stID为10。在Access数据库中语句为:“delete * from student where stID=10”,而在SqlServer中则要改为:“delete student where stID id=10”。即将delete * from改为delete。
Access数据库中,sql语句可以直接用一些VB函数,比如cstr()函数,而在SqlServer数据库中,却不能用。
Access数据库里面除法可以使用“\”或者“/”,而在SqlServer数据库中只能使用“/”。
SqlServer主要管理中等类型的数据库,存储记录一般在几万到几十万条。为了方便开发人员使用,系统提供了很多保留字。而Access主要管理小型的数据库,存储记录一般在一万条以内。由于比较简单,就没有保留字了。这样,我们在Access中定义的一些字段名称转入到Sql Server中就可能和里面的保留字相冲突。因此,我们需要修改相应的字段名称,或者在字段名称外面加上“ [] ”。
以上是转化过程中一些常见问题的解决方法。除此以外,还会有其他的一些问题,比如:默认值丢失、数据库联接的格式等等,还有待于我们进一步发现。
为了确保记录的唯一性,在ACCESS数据库中我们会将某些类型设置为自动编号类型。但转入到sql server时,并没有将它设为自动编号型。这时候我们需要在SQL创建语句中加上identity,表示自动编号。或者把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”。
Access中的一些时间和日期函数在转化为Sql Server时需要修改。常见的有:now()、time()和date(),在SqlServer中都要改成getdate()。Access中的datediff('d', time1, time2)函数在Sql Server中要改成datediff(day, time1, time2)。datediff('ww', time1, time2) 函数在Sql Server中要改成datediff(week, time1, time2)等等。
在Sql Server中,和日期有关的字段,Sql Server默认为smalldatetime型,我们最好将它改为datetime型,因为datetime型的范围比smalldatetime型大。如果用smalldatetime型,那么由Access转化过来时,会发生失败的可能;而用datetime类型,一般转化都会成功。
对两种数据库进行操作的sql语句不完全相同,例如:删除student表中stID为10。在Access数据库中语句为:“delete * from student where stID=10”,而在SqlServer中则要改为:“delete student where stID id=10”。即将delete * from改为delete。
Access数据库中,sql语句可以直接用一些VB函数,比如cstr()函数,而在SqlServer数据库中,却不能用。
Access数据库里面除法可以使用“\”或者“/”,而在SqlServer数据库中只能使用“/”。
SqlServer主要管理中等类型的数据库,存储记录一般在几万到几十万条。为了方便开发人员使用,系统提供了很多保留字。而Access主要管理小型的数据库,存储记录一般在一万条以内。由于比较简单,就没有保留字了。这样,我们在Access中定义的一些字段名称转入到Sql Server中就可能和里面的保留字相冲突。因此,我们需要修改相应的字段名称,或者在字段名称外面加上“ [] ”。
以上是转化过程中一些常见问题的解决方法。除此以外,还会有其他的一些问题,比如:默认值丢失、数据库联接的格式等等,还有待于我们进一步发现。