Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> ADP  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702346
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

新手来看:Access转SQL Server要注意些什么?

作者:cg1  摘自:未详  :cg1  更新日期:2003-11-1  浏览人次:

 

问题:

新手来看:Access转SQL Server要注意些什么?

 

方法一:


首先,你要明白什么是 Access 开发,什么是 JET 应用,如果你还不能明白,请参考:

http://access911.net/index.asp?board=4&recordid=79FAB51E12DC

在这里,我们谈论的是 Access 开发的升级,如何升级到 SQL Server 2000。你有几种升级方法可以选择。
1、你可以采用链接表方式,通过链接表链接到 SQL SERVER 2000 中的表。原先在 ACCESS 中开发的程序基本无需更改,除非你要更改数据结构
2、你可以采用 ADP 的方式升级数据库,ADP 方式基本抛弃了原先 MDB 大多数模式。你必须适应新的数据结构,接受 JET SQL 编写的查询变成 T-SQL 编写的存储过程、视图等等对象的结果。也就是说你必须重新学习 T-SQL 。

另外请参考:
http://access911.net/index.asp?board=4&recordid=72FAB61E14DC

 

方法二:


给你一些我的经验吧。反正access到sqlserver的移植是很痛苦的,我弄过好几次了。
希望大家能补充一下。

1.数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用
decimal。
2.所有的默认值都丢失了。主要是数字类型和日期类型。
3.所有now(),time(),date()要改成getdate()。
4.所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
5.有可能一些true/false类型不能使用,要变为1/0。
6.备注类型要通过cast(column as varchar)来使用。
7.CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能
显示不完整。
8.isnull(rowname)要改成rowname = null

 

方法三:

    1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
    2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
    3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".
    4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
    SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
    5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。

 

Visual Basic for Applications 与 SQL Server Transact-SQL 之间的函数比较 (ADP)::


全部显示全部隐藏

Visual Basic for Applications 与 SQL Server Transact-SQL 之间的函数比较 (ADP)

注释  本主题中的信息仅适用于 Microsoft Access 项目 (.adp)。

下表比较了 Microsoft Visual Basic for Applications (VBA) 和 Microsoft SQL Server Transact-SQL 中的常用函数。有关 Transact-SQL 标量函数的详细信息,请参阅 SQL Server 文档。

注意   “升迁向导”将下列 VBA 函数(用于表有效性规则、字段验证和默认情况下)转换为对等的 Transact-SQL 函数。

显示字符串函数

VBA 函数 Transact-SQL
标量函数
Asc(x) ASCII(x)
Chr$(x) CHAR(x)
Lcase$(x) LCASE(x)

LOWER(x)

Len(x) DATALENGTH(x)
Ltrim$( x) LTRIM(x)
Mid$(x,y,z) SUBSTRING(x,y,z)
Right$(x,y) RIGHT(x,y)
Rtrim$(x) RTRIM(x)
Space$(x) SPACE(x)
Str$(x) STR(x)
Ucase$( x) UCASE(x)

UPPER(x)

显示转换函数

VBA 函数 Transact-SQL
标量函数
Ccur(x) CONVERT(money,x)
Cdbl(x) CONVERT(float,x)
Cint(x) CONVERT(smallint,x)
Clng(x) CONVERT(int,x)
Csng(x) CONVERT(real,x)
Cstr(x) CONVERT(varchar,x)
Cvdate(x) CONVERT(datetime,x)

显示日期函数

VBA 函数 Transact-SQL
标量函数
Date(x) CONVERT(DATETIME,CONVERT(varchar,GETDATE(x)))
Dateadd("<Access datepart>",x,y) DATEADD(<SQL Server datepart>, x, y)
Datediff("<Access datepart>",x,y) DATEDIFF(<SQL Server datepart>, x, y)
Datepart("<Access datepart>", x) DATEPART(<SQL Server datepart>, x)
Day(x) DATEPART(dd,x)
Hour(x) DATEPART(hh,x)
Minute(x) DATEPART(mi,x)
Month(x) DATEPART(mm,x)
Now(x) GETDATE(x)
Second(x) DATEPART(ss,x)
Weekday(x) DATEPART(dw,x)
Year(x) DATEPART(yy,x)

显示数学函数

VBA 函数 Transact-SQL
标量函数
Int(x) FLOOR(x)
Sgn(x) SIGN(x)
Rnd(x) ROUND(x)

 


 

 
相关文章
     将你的Access数据库移植到SQLServer7.0 
     Access中MDB转ADP最先遇到的问题以及解决方法
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利