1:服务器操作
EXEC sp_addlinkedserver
'Test', --名称
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
GO
-------以上为添加连接服务器exec sp_addlinkedsrvlogin 'test','false','sa','sa',''
然后就可以:select * from Test.库名.dbo.表名
orSELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=serve;UID=sa;PWD=sa',
db.dbo.table) AS aSELECT *
FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table')
set XACT_ABORT on
SET ANSI_NULL_DFLT_ON on
EXEC sp_addlinkedserver
'Test', --名称
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
GO
-------以上为添加连接服务器exec sp_addlinkedsrvlogin 'test','false','sa','sa',''
然后就可以:select * from Test.库名.dbo.表名
orSELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server};SERVER=serve;UID=sa;PWD=sa',
db.dbo.table) AS aSELECT *
FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table')
set XACT_ABORT on
SET ANSI_NULL_DFLT_ON on
Source=192.168.19.1;User
ID=sa;Password=pass').pubs.dbo.jobs
建立过程的中如果要对连接服务器操作,要加上set XACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on
select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
SELECT *
FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table')
set XACT_ABORT on
SET ANSI_NULL_DFLT_ON on
另外大家谁能告诉我这些是什么意思。
set XACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on
还有这几个 OPENDATASOURCE,OPENROWSET 的用法。
谢谢大家,你们提供的方法都很好用。
FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table') 这里的test是建立好的连接服务器
在执行分布式查询时应将 SET ANSI_NULLS 设置为 ON。
在执行分布式查询时应将 ANSI_WARNINGS 设置为 ON。
企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。就是:
create proc 名
as
SET ANSI_NULL_DFLT_ON on --注意
SET ANSI_WARNINGS on select * from open...
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','密码'
go--然后用类似下面的语句来查询另一台服务器的数据
select * from srv_lnk.数据库名.dbo.表名