老秘网_材夜思范文

标题: 网站access数据库转SQL数据库图文详解 [打印本页]

作者: 化宁秘书    时间: 2009-8-28 17:44
标题: 网站access数据库转SQL数据库图文详解
很多朋友问我access转sql的一些方法,今天我在这里给大家做了一套网站access数据库转SQL数据库图文详解,希望对站长朋友有一定的帮助,还不会的朋友可以加我qq :316290906 咨询。 * P& D' f; F6 i( G% {

dedecms.com

. i7 L' h" H- Q! R5 J; f

+ }( Q" H+ `# G9 ~

     第一步:SQL SERVER 2000安装 内容来自dedecms

/ k6 B8 U0 _2 ]1 W. m( H

  第二步:建立SQL索引 9 T2 l* M- R; Q6 l" ^& l+ I: y

dedecms.com
% |+ K# k, z- w$ Z' T. q

) g) h& G& n; Z" g7 D6 R

  第三步:导入数据 7 x: x7 p$ R7 ?( d0 _6 ]/ k: m

dedecms.com

6 q6 @- _- u' f

3 B3 Q/ ^; ?. P4 Z

  一、SQL SERVER 2000安装 9 S. q% y" G+ Q4 K# S

dedecms.com

3 r1 a( W4 {9 t7 `; N

2 v7 D6 K9 x: P9 W" B: v

   & y: U" {! B+ v7 m: U2 [' e

copyright dedecms
7 y0 r/ Z; J1 A9 W) V' l5 |! I- Q \

* C8 M/ g) q5 w6 a* `; L
& C+ V) t0 ~' f

  copyright dedecms

* J. G" \% @ e3 e

   0 u" y, ?; J8 e( A% W

织梦内容管理系统

, D3 M# u- }/ P J

8 J% {1 P# T! Q' u0 O! n
" \9 e9 U4 g+ h: w0 s9 o

  % _# C3 s8 v; ^' R1 o* |' l

copyright dedecms
. i0 {2 F- L0 j

" e& _0 u2 p- B

   & b% h/ o) z3 m

copyright dedecms

" g6 p* V1 [% ~7 a

* Y: [# s- k( F$ y. o% ^3 v
% Z0 \4 p$ v3 X, ~! b [

  内容来自dedecms

: [6 C! ~8 J" ]) x8 G( `+ L

   1 d4 M1 {' z1 K$ Q5 S

织梦好,好织梦

3 n- I8 ^: e+ D7 i

1 n( u# A% [6 | t. p1 z' G: T- F
. ^+ J- p( F, ?9 w) d/ x! i: X

  & |% f. M1 H" r' w

本文来自织梦
2 `/ F& C# k7 `0 K1 G% c, h

: N8 {7 L' T) @

   织梦好,好织梦

* w5 s$ Y W3 x/ s
2 V0 |! l% {6 M

  dedecms.com

t0 R! n& G2 Y

   * P+ T+ M1 J6 j$ d% O( b1 I

本文来自织梦
! |$ w* k- j# P) O1 k

) |; Q" H3 B! [* a# B0 T/ I
! h3 V3 z+ M0 Z

  本文来自织梦

/ @2 H$ g9 h) }

   7 g8 {6 J9 E8 u' v3 L' R. W

copyright dedecms

" M0 r1 D& [9 f$ z* C: ~" t) S

1 o U( T$ y3 i# v E
||| 8 U' d1 [" Q& s3 K- l. H/ A

  6 p2 X" V% l- \# u3 \* ~& H; D& E

dedecms.com
3 y* |4 U* e. N' d9 E

~+ Y5 ]4 v2 l8 ?# U

   织梦内容管理系统

4 q! `+ v! O7 D9 h
# {! p! R, o3 i* \

  dedecms.com

5 _3 I" b+ k0 M! ^+ z. f% [

   / I1 N! d0 ^5 R% c; i* L

dedecms.com
7 R+ z# K0 y6 `3 m: ~' W% j" @

7 M8 E) Z# V2 t. Z6 U; _; ]
$ K/ x2 w7 M+ V/ x e! ^0 n

  # `/ Y4 C) ]( m! ^5 c" a3 ]% V% X6 I

内容来自dedecms
0 Z1 ]3 i+ o0 `/ n9 x3 ?% E% n, {

+ p9 P7 n! w. N! C; Y

   dedecms.com

6 @/ T' }, H7 O
+ [7 D1 `6 s4 s. P0 i& n6 z

  - t$ G( _: M" L8 J; `! @5 \ h3 T3 G+ H

内容来自dedecms

# N: _' r; U0 }8 l& L

+ W# I: g/ e5 C" p7 {

   / o. D4 k% T9 m* L; P8 i+ o4 H

织梦好,好织梦

, [, N/ o: n. U

# N3 w+ _8 x+ i8 z# c
2 }. J& Q% c8 V

  本文来自织梦

7 F( S, D2 \6 k; M( P7 e

   h# t3 w" y; E% L* I& @6 R

dedecms.com
- w% L. K: r8 x) e+ A

- C6 N% H! _% L) o3 L, q$ |
||| / p8 @7 g+ r+ z- ~6 _( i) V; a

  织梦内容管理系统

: s7 w# o6 J. s* n! s2 u

   织梦内容管理系统

4 N" d4 {% Q4 {: L, e# C$ \; K9 Q7 |3 B9 F
% H/ O$ G( P% `8 g1 U. [2 D

  " t" \& L6 Y6 b( [

织梦好,好织梦

0 Q( S+ a. q) \- w4 h% J+ j* g

, y% H3 q) t4 a- E( G7 ?

   织梦好,好织梦

' A9 d- ]: E( |: p8 B. N) P
+ R5 M- _: W5 T( k7 M- K+ u/ h

  + M+ J: p$ v4 e% R7 ^; r8 m0 {1 l

织梦内容管理系统
8 C# d. n" [( U

( P" g1 @3 R7 z( {9 O$ T

   织梦好,好织梦

4 \8 ]0 j7 X& Q: F( M
- s# p3 W; I" y- U9 G5 U+ @# w

  织梦好,好织梦

3 o3 [7 N5 w; N! Z3 d

   copyright dedecms

( W4 c* w( P' r% X7 B
0 u* b4 F; L4 Q! z @. f

  3 U5 d* [. v8 \3 G" R( g

copyright dedecms

5 t( \3 k a4 n5 s F' k/ X, b

' D4 ~4 H) C; V! B

   copyright dedecms

$ N3 E) r9 c# l- m7 D1 t
% t$ S! K5 _! E# `

  织梦好,好织梦

8 p' G( j1 I. A9 h4 \( i

   织梦内容管理系统

8 E+ u3 \* j$ k" W. M4 J4 c
9 j7 ]3 `* |5 O F9 C2 I6 o q+ c

  dedecms.com

5 f' p# f* d0 ?6 u0 r

   : S( b3 \" f; `6 T: b, g

本文来自织梦
% s9 F9 {; \$ z$ U" Z1 ~. Y

7 ~0 x4 ^8 [% N; M; [
$ L) a7 S7 @4 h

  织梦好,好织梦

- {. o" ?5 d2 l" {& r

  SQL SERVER 2000安装完成。 本文来自织梦

, G% U( ~. O- ^

  二、建立SQL索引 8 }6 `# ^( N% N0 w7 V- N' v4 U- ?4 s# A

本文来自织梦
/ S' ?& B- x/ `

( z: g" N% J" ~7 c) x

   6 H8 z5 e$ V, A! E( n

copyright dedecms

6 [! n( I* ^/ m

* {) |1 X. m3 K
||| 7 \2 p6 }0 F. y. [

  ! R% Z5 Y; v4 {, A) g1 U% v2 A* S

内容来自dedecms
: P# C, E- u8 O& Q# l, ~6 |

! H/ k8 N/ J; O

   4 Q3 [1 S$ j- d$ V& H

dedecms.com
2 | Y9 ^& c: F. D

) q0 ^" m3 q1 s
. T; \. V$ Z+ P6 g6 X' ]* B: R o

  织梦好,好织梦

' Y8 m6 U9 p" S

   内容来自dedecms

6 E4 a8 k9 V3 t% L) ^
8 }7 u: J* U2 a, U4 M, ~' s" m% d

  ( e V5 z$ s: T4 D/ _" U' q5 A. }. c

织梦内容管理系统

+ C9 N% K" Q$ B8 \- |& e

4 e3 a1 j2 K6 `

   织梦好,好织梦

" H7 L# y& q% Y; Y6 p
* B X3 l. C. |, A$ U

  3 T, I3 ~5 Q9 [+ d3 n# e4 I' f5 T

内容来自dedecms

7 V) t6 t9 N( q @5 Q

* K# r. Q0 [3 P; C# J7 Y! A

   内容来自dedecms

! e: H# x! g7 K
" ?% B; o: U9 K0 z0 a' `

  + A# E; e* x C

内容来自dedecms
5 w% l0 ^( z( L3 d: e: s1 W

2 M, v+ T" ?' n2 b7 \$ S0 ~% |

  SQL索引搞定!!!!!!!! " W ]8 F/ D" V' a2 c- v- n

copyright dedecms
; x6 M% I+ a* S9 e' r) G- }- s: x

4 j2 p6 A8 `8 R! E" h$ C: s# O

  ||| # z9 X' i0 V Z7 E

织梦好,好织梦
9 o ^9 ^4 k9 `" c7 x6 U

2 ^# b: ^: j( u4 @) I8 b9 ?

  三、导入数据 ) S7 U% p8 P" X7 F8 B/ w

织梦好,好织梦
. O% b/ z7 j9 j( k( {- s5 [

" w/ W, F! s* ]7 v* N4 I

   # t* v' |2 w. m+ M. n

内容来自dedecms

2 f' Y1 K% _' T# l& V' O$ M

; {9 S4 I5 Y+ W' N( e
% f. Q" T9 L: n" z& z

  织梦好,好织梦

; f, N* C' P7 j9 _) [

   9 {8 n4 }( l, ?% D9 H% N

织梦好,好织梦

( W6 L( u# @6 u5 D; g' K O, M4 {

% ?7 T V2 m! i4 d: e$ h* v
+ E f9 L8 {0 v5 I

  3 m+ J, y" l4 C9 X# S

织梦好,好织梦
8 d h+ B& f- O& \" [% }, B' h

8 G# _: Y/ y& p

   9 f2 l. q7 ^* ^( v! n8 `2 h

copyright dedecms

- f+ u. ~7 v" {" a

9 }! h$ D7 o* r ~; \4 G$ J) V( M
' \0 ]+ k* |& b( g

  copyright dedecms

, _& W$ H" h! g7 n7 n

   织梦内容管理系统

/ P9 y4 n" H/ Y1 `; `" \7 A
) m1 k$ ]9 |" c9 ]

  5 L* T# d- {4 ~

dedecms.com
# ~8 E" ]% J" l6 m( A! w4 P% R

* w9 K- L. @5 B. e* C3 x9 t2 a- A% Y3 h

   8 |: p6 j3 B+ p' H5 Q# P

copyright dedecms
/ B# G+ k1 l; q2 m

, c9 B7 c4 s1 A. I' ^# b6 ^
||| ' P8 t; B" j- P9 W% C+ {* i

  * d. Q9 J) R; j- U* S# |

织梦内容管理系统

3 v/ c; { M& n: ?1 q( ]% j

9 g: a+ a. |8 g+ }& N x

   # [. e' G4 p) u8 ~( B

内容来自dedecms

# A- p9 A3 C6 O# e9 j! O

5 [, P+ M: [# ^# m2 V
6 P6 _# }7 V( @2 D* z

  内容来自dedecms

3 S, J) M4 i8 W, ?3 |

   织梦内容管理系统

1 I% V5 @: c2 X: Z" w& m7 p2 m
$ k9 V" P, z5 ]% R

  % d9 y. W1 l1 H7 }3 S9 e$ M

内容来自dedecms

" _% L# M: a! \) T

& S1 I2 r$ y4 _/ o$ F

   * ^6 b6 F! ~% x' C4 K

织梦好,好织梦
) u* P8 Y w+ [1 k: ?2 C

' S) i* Q& a+ l9 }2 v5 K
2 r6 h- B9 P3 a7 R) a5 \5 K

  ! C2 Q7 w' t6 J; {1 g3 B; ]

本文来自织梦

/ x) |) S m, s- N4 z0 K

% Q; G/ z) X2 p+ Q

   m" t8 ^7 r9 Q5 J, G% {7 b

织梦内容管理系统
2 e* C: D% C/ x6 N6 w* b4 k

+ |' n: c4 f- o" F
+ d) N; g! ~& M- }2 m. ~

  dedecms.com

* |& m/ T+ r- Z) v, \

   dedecms.com

" A! b3 t, J o9 m4 C2 w( F
3 S+ e) a( A# E& H# ~, j

  ' m- z/ ]4 X, i) H( K5 b5 R

dedecms.com
" E1 d, ?6 Y; R" ~, D h

% y7 }; ]% ?' d

   9 J J: ~& T. x( @

dedecms.com
* J9 {1 m5 N2 B2 c, \! Z

; x# H( q2 E* w6 r


作者: 化宁秘书    时间: 2009-8-28 17:44
http://www.01ruodian.com/bbs/ShowPost.asp?ThreadID=10969
作者: 化宁秘书    时间: 2009-8-28 17:44
http://hi.baidu.com/ncwsky/blog/item/e54897256824e16434a80fb4.html
作者: 化宁秘书    时间: 2009-8-28 17:45
http://www.aqclub.com/wangye/2009/0206/468.html
作者: 化宁秘书    时间: 2009-8-28 17:48
http://tech.3326.com/A/000/003/000003140.htm
作者: 化宁秘书    时间: 2009-8-28 17:53
http://www.boyd.cn/info_Show.asp?ArticleID=3153
作者: 大明老秘    时间: 2009-8-28 18:39

想要把access数据库转化成SQL数据库的第一步就是安装SQL 2000 。

6 T4 m0 B5 b! D6 i3 ^

一.下载一个SQL 2000的安装程序,点击安装数据库服务器。一路点下一步,直到安装定义选项,选择安装服务器和客户端工具。接着点下一步,直到出现服务帐户,服务设置选择:使用本地系统帐户。然后继续点下一步,到身份验证模式,为方便在程序中访问,选择混合模式的,设置密码(密码要记住),然后一直点知道完成安装。

, Q: B9 w8 N* r+ Z) J$ A- ^% B L

可能出现的问题:

0 J b9 y- j; ~! z0 v+ [

1.1  出现提示:"以前的某个程序安装已在计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机."
解决方法:开始->运行->regedit,在注册表删除掉注册文件中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager下的FileRenameOperations项。

& k" G5 Q$ @) _( k, ~- |; d- s2 O

1.2出现提示:"SQL配置服务器失败"                                                                                                                                         解决方法: 开始->运行"键入 regedit 按下列顺序点击打开  
        +   HKEY_LOCAL_MACHINE    
              +   SOFTWART  
                    +   Microsoft  
                          +   Windows  
                                +   CurrentVersion  
                                      +   Setup              
                                            +   ExceptionComponents  

6 Y. u& W9 v7 W+ [; E, o2 U p8 l

将   ExceptionComponents   下面的文件夹全部删除!  
        如   {60BFF50D-FB2C-4498-A577-C9548C390BB9}  
                {60BFF50D-FB2C-4498-A577-C9548C390BB9}  
                {60BFF50D-FB2C-4498-A577-C9548C390BB9}  
                {60BFF50D-FB2C-4498-A577-C9548C390BB9}  
                .......   重新启动: 
二.解决了安装问题后,根据需要打上补丁(SQL server 2000 sevice Packg 4)。在开始转化的开始,先打开控制面板/管理工具/Intenet 信息服务/数据源(ODBC)->添加->Driver do Microsoft access (*.mdb);写上数据源名称;点选择找到要转化数据源地址,最后完成数据源添加。到这里就有了一个良好的开始。

7 w, y5 w8 W% m& p* t u+ z' d4 @

三.在“开始”->程序中找到SQL 2000 打开 企业管理器 一一点击扩展下去。在数据库右边右键新建一个数据库名,完成后选择此数据库,右键开始导入access数据。在数据源下拉菜单中选择Driver do Microsoft access (*.mdb);用户/系统...下拉菜单中选择开始时命名的access数据源名称。点下一步,选择SQL server 验证服务输入用户名sa和安装时设置的密码。点下一步,到选择源表时注意,选择你要导入的数据表,然后就一直点到完成就OK

- A' b' ]1 p0 R0 H/ r7 D. m, U/ Y

四.到这里就粗糙的完成了数据库的转化。现在还需要修改一些字段属性,由于SQL2000里面没有“自动编号“,所以你的以“自动编号“设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的“标示“选择“是“,种子为“1“,增量为“1“,
另外,ACCESS2000转换成SQL2000后,原来属性为“是/否“的字段将被转换成非空的“bit“,这时候你必须修改成自己想要的属性了;

1 p9 A( _/ {# l

这里需要注意的是:需要修改的字段属性,找到它所在的表,选择设计表,然后修改。这样把所需要修改的字段全部搞定后,就基本完成数据库的转化了。在安全性文件夹下找到登录,然后新建一个用户登录,给它命名,选择SQL server 用户验证,设置密码(密码要记住),选择完成转化的数据库,选择数据库访问标签,指定数据库,在下方增加选择 db_owner。这样就完成数据库的操作了。

. t1 z- ]1 ~6 m$ K% L j

五.后续工作,在ASP+SQL service 2000中 需要修改连接代码,方法如下:set conn=Server.CreateObject("ADODB.CONNECTION")
ctr="Provider=SQLOLEDB;Date Source=(local);Initial Catalg=转化好的数据库名字;User ID=新建的登录帐户;password=设置的密码;"
 conn.open ctr

; A6 m! p' l# s f, p0 ~

需要注意的是:

. \4 {' M6 F1 w$ u+ R# M

4.1转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
4.2对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“.
4.3日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。

* U! @: ~: m4 v& p6 {. r, Q

文章出处:http://www.diybl.com/course/7_databases/sql/sqlServer/200798/70979.html


作者: 大明老秘    时间: 2009-8-28 18:53
http://www.cncfan.com/html/?58_6569.html
作者: 爬格子    时间: 2009-8-29 11:57
.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号! ! C0 ?) s1 o I( B% d5 |. h

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

t3 ~: `) B& A( J }( f3 B

3. ACCESS删除记录时用: delete * from user where id=10

( S: F& v9 }& @

SQL SERVER删除是用: delete user where id=10

6 c; Q# ]; ~; L+ {! ^- b

4. ACCESS处理中,可用date()time()等函数,

3 S# Q7 S! e: s1 h! e" K

SQL SERVER处理中,只能用datediff,dateadd等函数,而不能用date()time()等函数。

8 d3 ~6 f5 }& t0 X% m% u& @# j3 j

5. ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,

9 [! Z9 g+ D# c7 A7 ]/ p* k

SQL SERVER数据库处理中,却不能用。

! T' o/ f$ A% m3 d

9 k3 k( s/ w* b, h- ^

1,对于日期字段字段

3 B+ X/ a9 y- [1 `

access表示为:#1981-28-12#

) O7 L3 O; j5 _1 Q: c S

SQLSERVER表示为:‘‘1981-02-12‘‘

0 y, o2 t# e0 a/ ]# @1 A) ^9 p

2, 多表操作时update语句的区别ACCESSSQLSERVER中的UPDATE语句对比:

, _: w' X' a! K" k4 `0 l

SQLSERVER中更新多表的UPDATE语句:

, B0 u \$ x. E* j6 y

UPDATE Tab1

/ |* u% a! M* M

SET a.Name = b.Name

) S; s9 [9 n4 o, f; r

FROM Tab1 a,Tab2 b

; O+ U3 I( e1 t

WHERE a.ID = b.ID;

& b" {3 n3 M' A5 h* V+ {# g# n+ r

ACCESS中应该是

, U. V0 P0 A t3 B+ S$ j' l! m

UPDATE Tab1 a,Tab2 b

, F2 D! h0 K: l5 T6 Q2 @

SET a.Name = b.Name

: _, ~$ t% k0 F* X: D- J

WHERE a.ID = b.ID;

8 a6 [: X, {, y/ T' G

:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.其他差不多

3 K$ w& E0 B/ G/ L- n

3,delete语句

9 B; l/ a8 f! m: [& P( z1 c

access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。

$ n$ v' W1 G9 Z# c l* i

Sql server 中则为: delete from table1 where a>2 即没有*

( @3 V- G: B/ t# w f% O

4as 后面的计算字段区别

6 |" B7 E/ q- w7 A5 ^- ]; f: J

access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。

9 N& r/ U8 }6 G+ r: r i

sqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。

3 X% V3 x" n% g( Z. X

5[.][!]的区别

. V0 i% W U5 J2 p/ Q

access中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。

% N8 Y1 z$ F: f" U6 W* \7 i

 sqlserver 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。

1 F# N; N( u+ m7 P

6,联合查询时,

' J" |6 E9 \ f7 m. g3 s

   access中多表联合查询:select a,b from(

) ^; v" _, w" H: q6 U

select a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b

% F" f* T: r, Z1 }+ j& o

sqlserve 中则‘select a,b from(

% k7 {) ^! v5 v& o

select a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。

2 u+ V" H- S5 K6 g- X2 |) j' l

7access升级到sqlserver时,

5 g U$ L4 e" \7 l8 d

  可以用sqlserver的数据导入工具导入数据,但要做必要的处理。

9 F& A* J% R) n

access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1

& Y; W6 T" {9 z0 t9 p

把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar->varchar.把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)

1 O- d/ T. V4 t: ~. W& d! a

8,true1=1

) Z! T9 ]$ T* Z& ~! g4 n

accesswhere true表示条件为真,

4 K5 f2 E" A) q

sqlserverwhere 1=1表示条件为真

0 y$ N; w. p/ r

9,判断字段值为空的区别

4 z9 O7 K7 E. S1 q' a

普通空:

" a/ x5 J. f" o s% P3 s8 u8 r

Accesssql server一样 where code is null where code is nol null

3 E. o: |# w7 r/ F1 D: ], ^

条件空:

7 C8 Q* `3 K% T5 J1 u

Accessiif([num] is null,0,[num]) iif([num] is null,[num1],[num])

+ j: q8 v9 C; E

SQLServer: isnull([num],0) isnull([num],[num1])

' i/ w7 Q: C" p$ ^. |. x* c

10,SQL语句取子串的区别

# x8 t% k& V; _3 x$ G& U

access:MID(字段,n1[n2]),LEFT(字段,n),RIGHT(字段,n

' T" Q% n& K* |- v U

如:select left(cs1,4)+-+cs2 as cs3

2 E8 h- q! i7 U+ v, l8 }9 F! G% z

SQLServer: SUBSTRING(expression, start, length)

5 o+ f3 |1 U2 c) O# e9 [9 c2 ]( q

如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + - + cs2 as cs3

3 p' }9 G, y5 l3 ]" @

6 H$ n! l0 i$ ~% Z8 t+ r5 }/ z

补充:

7 `$ H' W" X a; }( Q( I

) @2 k2 M' }* ]

ACCESSSQL2000SQL语句有区别的

* \ K8 a8 k' Z+ Q- i

比如now()SQL2000中必须改为getdate()

, ^7 }: x* c6 F) D) e2 B0 b

还有关键词必须加[] ,像ACCESS中字段名用name SQL20000必须加[name] 否则出错

~$ \/ O3 @3 Y' L

% Y8 w: G) v) k4 e: z% k* v+ F% m

数据库连接字重新配置

7 e0 h: f8 U, z X8 B0 t+ t3 @

" v; Y9 d. S4 t( S' P5 Y4 t

1. access sql 数据库后需要建立各表关键字以及递增量设置部分数据类型需要重新定义

7 o9 m( t2 Z0 H, x, {

2. now() 函数是可接受的,但在日期比较过程中需要用 getdate()

/ D3 x8 A4 y4 \: t' [

3. 保留字需要加 []

- H1 U8 {, v9 E+ x' r9 n; `4 g4 H

4. 单双引号需要转变

" b+ N f7 A0 C" n Z1 @$ n: |

5. 遵循标准sql定义(最关键的一条)


作者: 爬格子    时间: 2009-8-29 12:00

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

3 H+ u( I. u7 o0 A8 j) K; e9 X% c/ C

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

; }6 \+ [) q! ^5 `; f" q: v- _ N

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

, ?3 b% u1 U% t) z! K

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

7 Z- e7 ^) h4 }

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

6 [1 |. w+ Q; A! q: K

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

( [6 T3 ~% s* b. Y# F J

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

! H: F0 {' B6 B

isnull(rowname)要改成rowname = null

8 h4 e- N8 \0 n

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


作者: 爬格子    时间: 2009-8-29 12:01

[2][Microsoft Access]中可用如cstr等转数据类型函数,而
[Microsoft Sql Server]中则用convert或cast函数,如:
convert(varchar,[amount])等。


作者: 爬格子    时间: 2009-8-29 12:10
6,未检查变量值类型而出错
-----------------------------------------
sql="select * from [user] where id=" & myID
rs.open sql,conn,1,1
-----------------------------------------
假设id为数字型,myID变量此时值不为null,但为字符,比如myID此时为"aa"
那么sql将成为
sql="select * from [user] where id=aa"
解决:
在前面加上
if isnumeric(myID)=false then 出错提示

这也可以有效防止 sql injection 漏洞攻击。

7,由于数据库文件所在目录的NTFS权限而引起的'不能更新。数据库或对象为只读"错误。
说明:
WIN2K系统延续了WINNT系统的NTFS权限。
对于系统中的文夹都有默认的安全设置。
而通过HTTP对WWW访问时的系统默认用户是 iusr_计算机名 用户 ,它属于guest组。
当通过HTTP访问时,可以ASP或JSP,也或是PHP或.NET程序对数据进行修改操作:
比如:
当打开某一个文章时,程序设定,文章的阅读次数=原阅读次数+1
执行
conn.execute("update arts set clicks=clicks+1 where id=n")
语句时,如果 iusr_计算机名 用户没有对数据库的写权限时,就会出错.
解决方法:
找到数据库所在目录
右键》属性》安全选项卡》设置 iusr_计算机名 用户的写权限(当然,也可以是everyone)

作者: 爬格子    时间: 2009-8-29 12:12

(4) 添加数据记录:

# F% Q1 g, g6 X0 }. F; |! H {; V

sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)


作者: 爬格子    时间: 2009-8-29 12:16
大家在进行MSSQL的数据导出,导入时,是否会出现自动编号的字段类型无法转换?

首先,ACCESS转SQL时,我们在SQL企业管理器,导入数据.

在选择"表和视图"时,点击表右方的"转换",出现"列映射和转换",再点击"编辑SQL"

出现了SQL语句对话框,在这里我们就可以对SQL
作者: 爬格子    时间: 2009-8-29 12:32
数据库中如含有index等字段,在写SQL语句的时候,要注意加上[]将该字段括起来,如:select * from table where
      [index]='yes',因为将AC转化为MSSQL后,会自动加上中括号。

作者: 爬格子    时间: 2009-8-29 12:39
http://bbs.soft6.com/article-i17603-p2.html




欢迎光临 老秘网_材夜思范文 (http://www.caiyes.cn/) Powered by Discuz! X3.4