将Access数据库迁移到SQLServer,我应该在代码中更改什么?

时间:2013-04-29 09:09:37

标签: asp.net sql-server sql-server-2008 webmatrix webmatrix-2

我有一个使用访问数据库的网站,我想更改与SQL Server数据库的连接,我用SQL Server迁移数据库,但是我必须更改连接代码和sql请求。

这里是我在代码中的副本(我使用WebMatrix):

pageConn.asp:

 <% Dim conn,connstr,Clkj_mdb
    Clkj_mdb="/DaTa/#Clkj_Cms#.mdb"
    connstr="DBQ="+server.mappath(""&Clkj_mdb&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
    on error resume next
    set conn=server.createobject("ADODB.CONNECTION")
    conn.open connstr
        if err then
            err.clear
            set conn=nothing
            response.write "Connect Error!"
            response.End         
        End IF
   %>

我是否应该改变这部分的内容?

Class.asp:

<% If request.querystring("Edit")="B_E" Then 
    Set Rs=server.createobject("ADODB.Recordset")
    Sql="select * from clkj_BigClass where clkj_BigClassID ="&request("clkj_BigClassID")
    Rs.open Sql,conn,1,1
%>

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

在这种情况下,您不需要对SQL进行任何更改,但您需要更改连接字符串。您可以在此处找到示例连接字符串:http://connectionstrings.com/sql-server-2012

像这样的事情应该这样做:

connstr = "Provider=sqloledb;Data Source=<name of server>;Initial Catalog=<name of database>;User Id=<user id>;Password=<password>"

展望未来,JET SQL(Access)和T-SQL(SQL Server)之间的主要区别是:

您不能在T-SQL中的DELETE语句中使用*:DELETE * From MyTable在SQL Server中变为DELETE FROM MyTable

是/否列中的列成为SQL Server中的BIT字段。 True在SQL Server中表示为1,而在Access中表示为-1。

如果您在JET SQL中使用#作为分隔符来表示日期,则必须将它们更改为单引号&#39;在T-SQL中。