Access转换为 MS SQL 有什么要注意的地方

常在一些bbs上面看见有人在问Access转换为 MS SQL 有什么要注意的地方,或是编写存储过程,现在小弟在此写一些要注意的或者常用的语法给大家参考(部分为asp常用的函数)

-------------------

Access : Now()

MS SQL : GetDate()

-------------------

Access : mid

MS SQL : SubString( expression , start , length )
expression-要搜索的目标,但不能使用聚合函数
start-指定字符串的开始位置
length-指定获取字符串的长度

-------------------

Asp : Instr

MS SQL:CharIndex( expression1 , expression2 )
参数的位置和 Asp 的 Instr刚好相反

-------------------

Asp : Dim

MS SQL : Declare @variable DataType
举例:Declare @VarName VarChar(50)    声明变量@VarName为VarChar类型,长度为50

-------------------

赋值:
Declare @VarName VarChar(10)
Set @VarName = 'This is Content'

-------------------

数据类型转换函数,如 Asp 的 Cstr,Clng

MS SQL : Cast( expression As DataType)
expression 为目标对象
DataType 为要转换成的数据类型

举例:

Declare @VarName VarChar(20)   -- 声明一个 @VarName 变量为VarChar类型,长度20
Set @VarName = '2'             -- 给 @VarName 赋值
Cast( @VarName As Int)         -- 转换成 Int 类型数据

-------------------

字符串连接符号: +

-------------------

循环:

While Boolean_expression
    Begin
        -- 要执行的语句
    End

Boolean_expression 为布尔表达式,只要指定的条件为真,就循环执行语句

-------------------

if 的用法
if (Boolean_expression)
    Begin
        -- 执行 True 分支....
    End

if....else.... 的用法
if (Boolean_expression)
    Begin
        -- 执行 True 分支....
    End
Else
    Begin
        -- 执行 False 分支
    End

-------------------

ACCESS改为SQL需要注意哪几个地方

 
 
看到别人有时问这个方面的问题。。于是在各网站总结前前辈高人的几点想法,拿来共享:

数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。

所有的默认值都丢失了。主要是数字类型和日期类型。

所有now(),time(),date()要改成getdate()。

所有datediff('d', time1, time2)要改成datediff(day, time1, time2)

有可能一些true/false类型不能使用,要变为1/0。

备注类型要通过cast(column as varchar)来使用。

CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。

isnull(rowname)要改成rowname = null

ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。

对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".

日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
 

 

时间: 2024-09-25 19:24:34

Access转换为 MS SQL 有什么要注意的地方的相关文章

从access到MS SQL SERVER数据导入?

access|server|数据   一般有两种方法:   一是使用ms sql server 的DTO进行导入操作,一步一步按提示操作就行了.但这个过程中可能有的字段属性会改变,主键也没了.通常这种方法要sql建表语句配合使用. 另外一种方法是采用access提供的数据库升迁向导,前面的几个bug都没有了,目前还没有发现什么隐含的bug.这个升级方法应该是首选了.  

Access与MS SQL Server数据库的相互转换

  一.将Access 数据库数据移植转换为sql server 2000 第一步,开启SQLSERVER 2000服务管理,打开"企业管理器",新建一个数据库,名称为"Access数据转换"; 第二步,运行"导入和导出数据",打开"DTS导入/导出向导".选择数据源时,有两种选择:"Driver do Microsoft Access(*.mdb)"或"Microsoft Access"

写给初学 MS SQL 的朋友

初学 from :http://www.leadbbs.com/a/a.asp?B=230&ID=1189234&Ar=1190490&AUpflag=0&Ap=0&Aq=1&E=0 常在一些bbs上面看见有人在问Access转换为 MS SQL 有什么要注意的地方,或是编写存储过程,现在小弟在此写一些要注意的或者常用的语法给大家参考(部分为asp常用的函数) ------------------- Access : Now() MS SQL : GetDa

如何把ACCESS转成SQL数据库

access|sql|数据|数据库 很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项 一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的: 二,转换的方法 1,打开"控制面板"下"管理工具"中的"数据库源": 2,按"添加&q

MS SQL Server数据库查询优化及分页算法

server|分页|数据|数据库|算法|优化 探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构:CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名    [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键    [title] [varchar] (80) COLLATE

榨干MS SQL Server 最后一滴血

server 风云变换的网络,网络安全让人们不能不关注它.数据库,让我们不得不想起强大的ORACLE,MS SQL.微软的漏洞最多,今天就用SQL INJECTION来让MS SQL为我们好好的工作. 以下(使用一知名网站作为测试点),相信大家对SQL爆库,爆表,爆字段都已掌握,在这里就不多说这方面了. MS SQL内置函数介绍: @@VERSION 获得Windows的版本号,MS SQL的版本号,补丁. User_name() 得到当前系统的连接用户 Db_name() 得到当前连接的数据库

数据库优化实践:MS SQL优化开篇

数据库定义: 数据库是依照某种数据模型组织起来并存在二级存储器中的数据集合,此集合具有尽可能不重复,以 最优方式为特定组织提供多种应用服务,其数据结构独立于应用程序,对数据的CRUD操作进行统一管理和 控制,数据库是数据管理的高级阶段,是在文件系统上发展起来的. 基本结构: 数据库分三个层次:分别为物理数据层.概念数据层.逻辑数据层. 物理数据层:它是数据库的最内层,是物理存贮设备上实际存储的数据的集合.这些数据是原始数据 ,是用户加工的对象,由内部模式描述的指令操作处理的位串.字符和字组成.

初探MS SQL CE+Codesmith

原来的程序是使用sqlite这个嵌入式数据库作为Remit(code name)的数据源的,因为NHibernate支持这 个,然而有一点不好的是sqlite不支持外键,导致可悲的codesmith不能得到关系,无法生成我喜欢的多对多 映射.如果手写就要写映射xml文件以及业务实体类,这可是我这种懒人不喜欢的.况且数据库经常变更,良 好的代码生成可以做到数据库与代码的同步. 硬盘坏了也是一种契机,我突然想到了Sql Server还有一个CE版本,现在不止提供For Mobile的,还提供 桌面版

MS SQL 事物日志传送能否跨数据库版本吗?

    SQL SERVER的事物日志传送(log shipping)功能,相信很多人都使用过或正在应用,这是MS SQL提供的一个非常强大的功能,一般需要一个主数据库服务器(primary/production database server)和辅助数据库服务器(standby server)来完成这个配置,默认情况下,主数据库和辅助数据库的版本应该是一致的,那么如果这两个数据库版本不一致,会不会有什么问题?还能做log shipping配置吗? 那么数据库版本不一致分两种情况:     1: