使用程序把access2000 数据转到MSsql数据库中

使用程序把access2000 数据转到MSsql数据库中,最近升级数据库,以前使用access 数据库 由于数据越来越大,只能升级数据库了,所以选择了,msSQL2008 ,可是以前的数据如何原封不动的转移呢,真是头疼啊 ,我利用asp程序完成了转移,代码如下:

首先按照access数据库表结构,创建mssql2008数据库,注意字段必须相同,否则会出错。

注意:MSSQL2008 文本最好用nvarchar  ,如果access字段是备注类型的 最好用 [ntext] NULL,

这是一个转移数据的asp代码:

思路:首先算出access有多少数据,然后把sql2008填充多少空数据,

最后:按照ID 进行每个数据的更新,


If request.Form("stable")=1 Then          
   			sql_access=sql_access+"tabproduct"
			sql_max_id="select max(id) as maxNum from tabproduct"
			set rs_max=server.CreateObject("adodb.recordset") 
	 		rs_max.open sql_max_id,conn,1,3
			if not rs_max.eof then
				max_id=rs_max("maxNum")
			else
				max_id=0
			end if
			
			if max_id=0 then
	
			else
			
				for i = 1 to max_id
					 sql_insert="insert into tabproduct (product_name) values (')"
					 conn_sql.execute(sql_insert)
				next
				response.Write max_id & "<<<<tabproduct Insert Success<br>"
			end if
			'开始转移数据
				  sql_access="select * from tabproduct"
				  set rs_access=server.CreateObject("adodb.recordset") 
				  rs_access.open sql_access,conn,1,3
				  
				  If Not rs_access.eof Then     
					for i=0 to rs_access.recordcount-1        
						   '打开sql数据库 
						  sql_update="select * from tabproduct where id=" & rs_access("id")
						  set rs_sql2008=server.CreateObject("adodb.recordset") 
						  rs_sql2008.open sql_update,conn_sql,1,3 
						   if not rs_sql2008.eof then
								For k=1 To rs_access.fields.count-1
									fields_name=rs_access.fields(k).name   
								
									rs_sql2000("" & fields_name & "")=rs_access("" & fields_name &"")  
										‘   rs_sql2000("product_name")=rs_access("product_name")  
										      ’rs_sql2008("product_count")=rs_access("product_count")
											’rs_sql2008("gonghuoshang")=rs_access("gonghuoshang")
										 ‘  rs_sql2008("collection_times")=rs_access("collection_times")
										  ’ rs_sql2008("keyword")=rs_access("keyword")
										  
								Next 
								rs_sql2008.update 
								rs_sql2008.close
								set rs_sql2008=nothing 
							end if      
							rs_access.movenext
					Next 
					
				   set rs_sql2000=nothing 
				   set rs_access=Nothing 
				end if


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值