通過SQL語句訪問遠程數據庫
1、得建立鏈接服務器: --刪除鏈接服務器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、建立完鏈接服務器后,便可通過其來任意操作遠程的數據庫啦。--查詢示例 select * from ITSV.數據庫名.dbo.表名 --PKselect * from sys.key_constraints where object_id = OBJECT_ID('TB')--FKselect * 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 on a.column1=b.column1 --openquery用法需要創建一個連接 --首先創建一個連接創建鏈接服務器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '遠程服務器名或ip地址 ' --查詢 select * FROM openquery(ITSV, 'SELECT * FROM 數據庫.dbo.表名 ') --把本地表導入遠程表 insert openquery(ITSV, 'SELECT * FROM 數據庫.dbo.表名 ') select * from 本地表 --更新本地表 update b set b.列B=a.列B FROM openquery(ITSV, 'SELECT * FROM 數據庫.dbo.表名 ') as a inner join 本地表 b on a.列A=b.列A --3、opendatasource/openrowset SELECT * FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陸名;PassWord=密碼 ' ).test.dbo.roy_ta 設置SQL Server定時執行命令
1、打開對象資源管理器,找到SQL Server代理
2、新建作業
3、在作業屬性—>常規項中填上作業名稱和描述信息
在作業屬性—>步驟項中類型為Transact-SQL腳本(T-SQL)的命令,如EXEC sp_PRocedure(如果有多個步驟,注意保證上一個步驟成功后轉到下一步)
在作業屬性—>計劃項為命令執行設置定時等
4、確定。
5、啟動SQL Server Agent
新聞熱點
疑難解答