通过SQL语句访问远程数据库
1、得建立链接服务器:
+ expand sourceview plaincopy to clipboardprint? --删除链接服务器 if exists(select * from master.dbo.sysservers where isremote=0 and srvname='ITSV') exec sp_dropserver 'ITSV','droplogins'
--创建连接服务器 exec sp_addlinkedserver 'ITSV','','SQLOLEDB','10.2.10.211' exec sp_addlinkedsrvlogin 'ITSV','false',null,'retailBI','retail' --删除链接服务器 if exists(select * from master.dbo.sysservers where isremote=0 and srvname='ITSV') exec sp_dropserver 'ITSV','droplogins'
--创建连接服务器 exec sp_addlinkedserver 'ITSV','','SQLOLEDB','10.2.10.211' exec sp_addlinkedsrvlogin 'ITSV','false',null,'retailBI','retail'
2、建立完链接服务器后,便可通过其来任意操作远程的数据库啦。
+ expand sourceview plaincopy to clipboardprint? --查询示例 select * from ITSV.数据库名.dbo.表名 --查询示例 select * from ITSV.数据库名.dbo.表名
更全面的SQL语句操作远程数据库来自于 ChinaJiaBing
先拷贝在此,留作不时之需
+ expand sourceview plaincopy to clipboardprint? --PK select * from sys.key_constraints where object_id = OBJECT_ID('TB') --FK select * from sys.foreign_keys where parent_object_id =OBJECT_ID('TB') --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 exec sp_dropserver 'ITSV ', 'droplogins ' --连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --生成本地表 select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) --把本地表导入远程表 insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名) select *from 本地表 --更新本地表 update b set b.列A=a.列A from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b |