dedecms.com
第一步:SQL SERVER 2000安装 内容来自dedecms
第二步:建立SQL索引
第三步:导入数据 7 x: x7 p$ R7 ?( d0 _6 ]/ k: m
dedecms.com
一、SQL SERVER 2000安装
dedecms.com
3 r1 a( W4 {9 t7 `; N& y: U" {! B+ v7 m: U2 [' e
copyright dedecms
* J. G" \% @ e3 e0 u" y, ?; J8 e( A% W
织梦内容管理系统
8 J% {1 P# T! Q' u0 O! n
copyright dedecms
内容来自dedecms
: [6 C! ~8 J" ]) x8 G( `+ L1 d4 M1 {' z1 K$ Q5 S
织梦好,好织梦
3 n- I8 ^: e+ D7 i 1 n( u# A% [6 | t. p1 z' G: T- F& |% f. M1 H" r' w
织梦好,好织梦
* w5 s$ Y W3 x/ sdedecms.com
t0 R! n& G2 Y
本文来自织梦
/ @2 H$ g9 h) }7 g8 {6 J9 E8 u' v3 L' R. W
copyright dedecms
1 o U( T$ y3 i# v E6 p2 X" V% l- \# u3 \* ~& H; D& E
织梦内容管理系统
4 q! `+ v! O7 D9 hdedecms.com
5 _3 I" b+ k0 M! ^+ z. f% [
# `/ Y4 C) ]( m! ^5 c" a3 ]% V% X6 I
dedecms.com
6 @/ T' }, H7 O
内容来自dedecms
# N: _' r; U0 }8 l& L + W# I: g/ e5 C" p7 {
织梦好,好织梦
本文来自织梦
7 F( S, D2 \6 k; M( P7 eh# t3 w" y; E% L* I& @6 R
织梦内容管理系统
: s7 w# o6 J. s* n! s2 u织梦内容管理系统
4 N" d4 {% Q4 {: L, e# C$ \; K9 Q7 |3 B9 F
织梦好,好织梦
0 Q( S+ a. q) \- w4 h% J+ j* g , y% H3 q) t4 a- E( G7 ?织梦好,好织梦
织梦好,好织梦
织梦好,好织梦
3 o3 [7 N5 w; N! Z3 dcopyright dedecms
3 U5 d* [. v8 \3 G" R( g
copyright dedecms
5 t( \3 k a4 n5 s F' k/ X, bcopyright dedecms
织梦好,好织梦
织梦内容管理系统
dedecms.com
织梦好,好织梦
SQL SERVER 2000安装完成。 本文来自织梦
, G% U( ~. O- ^二、建立SQL索引 8 }6 `# ^( N% N0 w7 V- N' v4 U- ?4 s# A
copyright dedecms
织梦好,好织梦
内容来自dedecms
织梦内容管理系统
+ C9 N% K" Q$ B8 \- |& e 4 e3 a1 j2 K6 `织梦好,好织梦
" H7 L# y& q% Y; Y6 p
内容来自dedecms
7 V) t6 t9 N( q @5 Q内容来自dedecms
+ A# E; e* x C
SQL索引搞定!!!!!!!! " W ]8 F/ D" V' a2 c- v- n
|||
三、导入数据 ) S7 U% p8 P" X7 F8 B/ w
内容来自dedecms
; {9 S4 I5 Y+ W' N( e织梦好,好织梦
9 {8 n4 }( l, ?% D9 H% N
织梦好,好织梦
% ?7 T V2 m! i4 d: e$ h* v3 m+ J, y" l4 C9 X# S
copyright dedecms
copyright dedecms
织梦内容管理系统
5 L* T# d- {4 ~
* d. Q9 J) R; j- U* S# |
织梦内容管理系统
9 g: a+ a. |8 g+ }& N x
内容来自dedecms
5 [, P+ M: [# ^# m2 V内容来自dedecms
织梦内容管理系统
% d9 y. W1 l1 H7 }3 S9 e$ M
内容来自dedecms
& S1 I2 r$ y4 _/ o$ F
本文来自织梦
% Q; G/ z) X2 p+ Q
dedecms.com
* |& m/ T+ r- Z) v, \dedecms.com
" A! b3 t, J o9 m4 C2 w( F' m- z/ ]4 X, i) H( K5 b5 R
想要把access数据库转化成SQL数据库的第一步就是安装SQL 2000 。
一.下载一个SQL 2000的安装程序,点击安装数据库服务器。一路点下一步,直到安装定义选项,选择安装服务器和客户端工具。接着点下一步,直到出现服务帐户,服务设置选择:使用本地系统帐户。然后继续点下一步,到身份验证模式,为方便在程序中访问,选择混合模式的,设置密码(密码要记住),然后一直点知道完成安装。
, Q: B9 w8 N* r+ Z) J$ A- ^% B L可能出现的问题:
1.1 出现提示:"以前的某个程序安装已在计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机."
解决方法:开始->运行->regedit,在注册表删除掉注册文件中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager下的FileRenameOperations项。
1.2出现提示:"SQL配置服务器失败" 解决方法: 开始->运行"键入 regedit 按下列顺序点击打开
+ HKEY_LOCAL_MACHINE
+ SOFTWART
+ Microsoft
+ Windows
+ CurrentVersion
+ Setup
+ ExceptionComponents
将 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);写上数据源名称;点选择找到要转化数据源地址,最后完成数据源添加。到这里就有了一个良好的开始。
三.在“开始”->程序中找到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“,这时候你必须修改成自己想要的属性了;
这里需要注意的是:需要修改的字段属性,找到它所在的表,选择设计表,然后修改。这样把所需要修改的字段全部搞定后,就基本完成数据库的转化了。在安全性文件夹下找到登录,然后新建一个用户登录,给它命名,选择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
需要注意的是:
. \4 {' M6 F1 w$ u+ R# M4.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数据库处理中,却不能用。
文章出处:http://www.diybl.com/course/7_databases/sql/sqlServer/200798/70979.html
2. 转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。
t3 ~: `) B& A( J }( f3 B3. ACCESS删除记录时用: delete * from user where id=10
( S: F& v9 }& @SQL SERVER删除是用: delete user where id=10
4. ACCESS处理中,可用date()、time()等函数,
SQL SERVER处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
8 d3 ~6 f5 }& t0 X% m% u& @# j3 j5. ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,
9 [! Z9 g+ D# c7 A7 ]/ p* kSQL SERVER数据库处理中,却不能用。
! T' o/ f$ A% m3 d1,对于日期字段字段
3 B+ X/ a9 y- [1 `access表示为:#1981-28-12#
) O7 L3 O; j5 _1 Q: c SSQLSERVER表示为:‘‘1981-02-12‘‘
2, 多表操作时update语句的区别ACCESS与SQLSERVER中的UPDATE语句对比:
SQLSERVER中更新多表的UPDATE语句:
, B0 u \$ x. E* j6 yUPDATE Tab1
/ |* u% a! M* MSET a.Name = b.Name
FROM Tab1 a,Tab2 b
; O+ U3 I( e1 tWHERE a.ID = b.ID;
& b" {3 n3 M' A5 h* V+ {# g# n+ rACCESS中应该是
, U. V0 P0 A t3 B+ S$ j' l! mUPDATE Tab1 a,Tab2 b
SET a.Name = b.Name
WHERE a.ID = b.ID;
即:ACCESS中的UPDATE语句没有FROM子句,所有引用的表都列在UPDATE关键字后.其他差不多
3 K$ w& E0 B/ G/ L- n3,delete语句
access中删除时用:delete * from table1 where a>2 即只要把select 语句里的select 换成delete就可以了。
$ n$ v' W1 G9 Z# c l* iSql server 中则为: delete from table1 where a>2 即没有*号
4,as 后面的计算字段区别
access中可以这样:select a,sum(num) as kc_num,kc_num*num as all_kc_num 即可以把AS后的字段当作一个数据库字段参与计算。
9 N& r/ U8 }6 G+ r: r isqlserver 中则为:select a,sum(num) as kc_num,sum(num)*num as all_kc_num 即不可以把AS后的字段当作一个数据库字段参与计算。
3 X% V3 x" n% g( Z. X5,[.]与[!]的区别
. V0 i% W U5 J2 p/ Qaccess中多表联合查询时:select tab1!a as tab1a,tab2!b tab2b from tab1,tab2 ,中间的AS可以不要。
% N8 Y1 z$ F: f" U6 W* \7 isqlserver 中则:select tab1.a as tab1a,tab2.b tab2b from tab1,tab2 ,中间的AS可以不要。
6,联合查询时,
access中多表联合查询:‘select a,b from(
) ^; v" _, w" H: q6 Uselect a,b from tab1 where a>3 union select c,d from tab2 ) group by a,b
sqlserve 中则‘select a,b from(
% k7 {) ^! v5 v& oselect a,b from tab1 where a>3 union select c,d from tab2 ) tmptable group by a,b即要加一个虚的表tmptable,表名任意。
7,access升级到sqlserver时,
可以用sqlserver的数据导入工具导入数据,但要做必要的处理。
access中的自动编号,不会自动转换SQL中的自动编号,只能转换为int型,要把它手工改成标识字段,种子为1,
& Y; W6 T" {9 z0 t9 p把所有导入被sqlserver转化成的以n开头的字段类型的n去掉,如nvarchar->varchar.把需要有秒类型的日期字段改成datatime类型(SQL会把所有的日期开转化成smalldatetime型)
8,true与1=1
) Z! T9 ]$ T* Z& ~! g4 naccess用where true表示条件为真,
sqlserver用where 1=1表示条件为真
9,判断字段值为空的区别
4 z9 O7 K7 E. S1 q' a普通空:
Access和sql server一样 where code is null 或 where code is nol null
条件空:
7 C8 Q* `3 K% T5 J1 uAccess:iif([num] is null,0,[num]) 或 iif([num] is null,[num1],[num])
+ j: q8 v9 C; ESQLServer: isnull([num],0) 或 isnull([num],[num1])
10,SQL语句取子串的区别
# x8 t% k& V; _3 x$ G& Uaccess:MID(字段,n1,[n2]),LEFT(字段,n),RIGHT(字段,n)
如:select left(cs1,4)+‘-‘+cs2 as cs3
2 E8 h- q! i7 U+ v, l8 }9 F! G% zSQLServer: SUBSTRING(expression, start, length)
如:select substring(cs1, 1, 2) + substring(cs1, 4, 2) + ‘-‘ + cs2 as cs3
6 H$ n! l0 i$ ~% Z8 t+ r5 }/ z补充:
7 `$ H' W" X a; }( Q( IACCESS与SQL2000的SQL语句有区别的
* \ 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 @1. access 转sql 数据库后需要建立各表关键字以及递增量设置部分数据类型需要重新定义
7 o9 m( t2 Z0 H, x, {2. now() 函数是可接受的,但在日期比较过程中需要用 getdate()
3. 保留字需要加 []
- H1 U8 {, v9 E+ x' r9 n; `4 g4 H4. 单双引号需要转变
" b+ N f7 A0 C" n Z1 @$ n: |5. 遵循标准sql定义(最关键的一条)
数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。
3 H+ u( I. u7 o0 A8 j) K; e9 X% c/ C所有的默认值都丢失了。主要是数字类型和日期类型。
所有now(),time(),date()要改成getdate()。
所有datediff('d', time1, time2)要改成datediff(day, time1, time2)
7 Z- e7 ^) h4 }有可能一些true/false类型不能使用,要变为1/0。
备注类型要通过cast(column as varchar)来使用。
CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。
! H: F0 {' B6 Bisnull(rowname)要改成rowname = null
8 h4 e- N8 \0 nACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
[2][Microsoft Access]中可用如cstr等转数据类型函数,而
[Microsoft Sql Server]中则用convert或cast函数,如:
convert(varchar,[amount])等。
(4) 添加数据记录:
# F% Q1 g, g6 X0 }. F; |! H {; Vsql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)
欢迎光临 老秘网_材夜思范文 (http://www.caiyes.cn/) | Powered by Discuz! X3.4 |