请教一个数据库表覆盖的问题
远程服务器一台
计算机名:SERVER
IP地址:211.96.9.123
SQL2005端口:1432
数据库名:SAMPLE08
其中某一表名:CUSTOMERS
本地服务器一台
计算机名:LOCALSERVER
数据库名:LOCALSAMPLE08
我想请问下
2个数据库结构一样,我想把远程数据库的CUSTOMERS覆盖至本地SQL2005的LOCALSAMPLE08数据库
应该怎么操作比较合理?
[解决办法]
--在本地:select * into CUSTOMERS from openrowset('msdasql','driver={sql server};server=211.96.9.123;uid=用户名;pwd=密码','select * from SAMPLE08..CUSTOMERS')a
[解决办法]
上面的是拷贝表结构和表中数据。如果只拷贝表结构。不拷贝表数据。可以:select top 0 * into CUSTOMERS from openrowset('msdasql','driver={sql server};server=211.96.9.123;uid=用户名;pwd=密码','select * from SAMPLE08..CUSTOMERS')a
[解决办法]
为什么不用备份-拷贝-恢复
或者 分离-拷贝-附加
呢
[解决办法]
如果只时某几个表同步时,先清空要覆盖的表..
整个数据库同步用备份,在另一台机还原
EXEC sp_addlinkedserver 'OracleSvr', 'Oracle 7.3', 'MSDAORA', 'ORCLDB'GOinsert roy_taupdate roy_taset isbn=h_isbn FROM OPENQUERY(WX, 'SELECT h_isbn, h_name FROM xybook.dbo.db_product') as a inner join roy_ta on a.h_name=roy_ta.h_nameGOselect * from roy_tatruncate table roy_taalter table roy_ta add isbn varchar(20)null/***********************************************************************/介绍几种连接更新方法:--创建链接服务器exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'go--查询示例select * from srv_lnk.数据库名.dbo.表名--导入示例select * into 表 from srv_lnk.数据库名.dbo.表名--以后不再使用时删除链接服务器exec sp_dropserver 'srv_lnk','droplogins'go--如果只是临时访问,可以直接用openrowset--查询示例select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)--导入示例select * into 表 from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',数据库名.dbo.表名)openrowset可以用下面两个OPENDATASOURCE或是openquery