日期:2014-05-17  浏览次数:20561 次

数据库复制

2个数据库 一个在测试环境 一个在正式环境 我要吧测试环境里的数据跟新下

方法1.
SELECT * INTO DatabaseB.dbo.TableB FROM opendatasource( 'SQLOLEDB',  'Data Source=IP/ServerName;User ID=SA;Password=***' ).DatabaseA.dbo.TableA 
报错 [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。

EXEC sp_configure "Ad Hoc Distributed Queries",1
报错 配置选项 'Ad Hoc Distributed Queries' 不存在,也可能是高级选项。

方法2  备份A服务器b数据库  还原到C服务器的D数据库。。。数据没过来。。。

方法3 导出A服务器的B数据库的所有表  到C服务器的D数据库中的表,没成功,提示某些列是只读的 修改

方法4  删除D数据库的表 SQL语句一个个 select * into  (成功 麻烦)

方法5 删除数据库D 执行方法3(没验证 )

问题:1,2,3 什么原因? 5能否成功?
------解决方案--------------------
--1、
USE master;
GO
EXEC sp_configure 'show advanced option', '1';
--然后再设定lz需要的ad hoc

--2、
备份是肯定可以做的,lz仔细看一下是否备份,还原成功。

--3、
可能是lz的权限问题,另外d数据库是否是只读的?

--5、
如果d确认没有用处的话,可以这样操作。

------解决方案--------------------
微软的系统,要跨机,多半要利用域账号,而不能在应用里指定对方的ip、端口、账号、密码
如果不是以 域用户 使用,基本很难成功