1 --創建鏈接服務器 2 3 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '遠程服務器名或ip地址 ' 4 5 exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用戶名 ', '密碼 ' 6 7 8 9 --查詢示例 10 11 select * from ITSV.數據庫名.dbo.表名 12 13 14 15 --導入示例 16 17 select * into 表 from ITSV.數據庫名.dbo.表名 18 19 20 21 --以后不再使用時刪除鏈接服務器 22 23 exec sp_dropserver 'ITSV ', 'droplogins ' 24 25 26 27 --連接遠程/局域網數據(openrowset/openquery/opendatasource) 28 29 --1、openrowset 30 31 32 33 --查詢示例 34 35 select * from openrowset( 'SQLOLEDB ', 'sql服務器名 '; '用戶名 '; '密碼 ',數據庫名.dbo.表名) 36 37 38 39 --生成本地表 40 41 select * into 表 from openrowset( 'SQLOLEDB ', 'sql服務器名 '; '用戶名 '; '密碼 ',數據庫名.dbo.表名) 42 43 44 45 --把本地表導入遠程表 46 47 insert openrowset( 'SQLOLEDB ', 'sql服務器名 '; '用戶名 '; '密碼 ',數據庫名.dbo.表名) 48 49 select *from 本地表 50 51 52 53 --更新本地表 54 55 update b 56 57 set b.列A=a.列A 58 59 from openrowset( 'SQLOLEDB ', 'sql服務器名 '; '用戶名 '; '密碼 ',數據庫名.dbo.表名)as a inner join 本地表 b 60 61 on a.column1=b.column1 62 63 64 65 --openquery用法需要創建一個連接 66 67 68 69 --首先創建一個連接創建鏈接服務器 70 71 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '遠程服務器名或ip地址 ' 72 73 --查詢 74 75 select * 76 77 FROM openquery(ITSV, 'SELECT * FROM 數據庫.dbo.表名 ') 78 79 --把本地表導入遠程表 80 81 insert openquery(ITSV, 'SELECT * FROM 數據庫.dbo.表名 ') 82 83 select * from 本地表 84 85 --更新本地表 86 87 update b 88 89 set b.列B=a.列B 90 91 FROM openquery(ITSV, 'SELECT * FROM 數據庫.dbo.表名 ') as a 92 93 inner join 本地表 b on a.列A=b.列A 94 95 96 97 --3、opendatasource/openrowset 98 99 SELECT * 100 101 FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ' ).test.dbo.roy_ta 102 103 --把本地表導入遠程表 104 105 insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;Password=密碼 ').數據庫.dbo.表名 106 107 select * from
執行的時候如果報錯就執行下面兩句 ;
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
跨表更新表數據
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', 'SERVER\SQLEXPRESS' --創建遠程數據庫連接的存儲過程 --exec sp_dropserver 'ITSV ', 'droplogins' -- 該行不執行 刪除存儲過程 --更新本地表 update b set b.Levels=a.Levels,b.Plogons=a.Plogons FROM openquery(ITSV, 'SELECT * FROM LandSection.dbo.LandLevel') as a inner join [dbo].[landlevel] b on a.ID=b.ID