access TO sql SERVER
迁移的时候,一般会遇到:
第一步:利用ACCESS 工具中的“升迁向导”将ACCESS数据库转入MSSQL数据库
第二步:检查一些特定字段的属性是否正常(如自增字段,是否字段,时间字段,有默认值的字段)
第三步:修改conn.asp文件中的数据库连接字符串(指所有相左关的conn.asp文件)
第四步:修改程序中与 是否字段 及 时间字段 相关的代码,
关于now:
如原先的SQL语句可能是这样:
update table1 set a=now()
现应改成:
update table1 set a=getdate()
因为在MSSQL另表示现在时间的是getdate()而不是如ACCESS中的now()
以上情况的报错可能是:
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
'now' 不是可以识别的 函数名。
例子是:/bigclass.asp,行 810
修改难度:易(替换代码中的now()为getdate()就行)
关于true与false:
比如原先的SQL语句可能这样:
update table1 set b=true
现应改成:
update table1 set b=1
因为MSSQL中表示“真”是1,“否”是0,而不是ACCESS中的 “true”与“false”
以上情况的报错可能是:
例子是:
修改难度:较难(必须得替换SQL语句的true为1,因为可能程序代码也存在true,所以是不能全部替换的)
关于保留字:
MSSQL对保留字的要求对ACCESS的要求更严
在MSSQL的SQL语句是不能这样写的:
所以在MSSQL中最好不要用保留字做字段名,比如一个字段名是name, 这种情况在MSSQL中是不提倡的,这在很多情况下的查询语句是不被支持的,如果实在要用,那么SQL语句中最好这么写[name]
五:其它不该错的错:
admin/newsadd1.asp,行15
SQL语句是这样的:select * from System where name,这是一个明显错误的SQL语句,且不说保留字先,光语法就是错误的,修改为:
select * from System
附conn.asp文件代码:
<%
set conn=server.createobject("ADODB.connection")
conn.open "PROVIDER=SQLOLEDB;DATA SOURCE=127.0.0.1;UID=你的用户名;PWD=密码;DATABASE=升迁后的库名"
%>