日期:2014-05-18 浏览次数:20672 次
--在本地:
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