日期:2014-05-18 浏览次数:20542 次
--在本地: 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' GO insert roy_ta update roy_ta set 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_name GO select * from roy_ta truncate table roy_ta alter 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