sqlserver 跨库 操作数据 sql语句

 


-------------- sqlserver 跨库 操作 --------------
-------------- 常见应用场景:查询远程数据库 一次性把数据导入到本地数据库表中

-------------- 创建服务器连接 BEGIN--------------
--- EXEC sys.sp_addlinkedserver" 是用于向 SQL Server 中添加链接服务器的存储过程。
EXEC sys.sp_addlinkedserver

-- sysname 【必填】 链接服务器的名称,手动填写,然后在本地的服务器对象-连接服务器就会显示这个服务器名称。
@server = 'ITSV',

-- nvarchar(128) 【必填,如果不填写,默认情况下 SQL Server 将使用适用于 OLE DB 连接的通用提供程序。这通常是一个合理的默认选择,但最好还是根据实际情况提供链接服务器所运行的产品名称以确保正确的连接。例如 Microsoft SQL Server、Oracle、MySQL 等】 链接服务器所运行的产品名称
@srvproduct = N'',

--nvarchar(128)【非必填:SQLOLEDB】 链接服务器所使用的 OLE DB 提供程序的名称。
--通常情况下,如果您正在连接到 SQL Server 数据库,则可以使用 "SQLNCLI" 作为 OLE DB 提供程序的名称。如果您正在连接到其他类型的数据库,比如 Oracle 或 MySQL,则需要提供相应的 OLE DB 提供程序的名称。
--如果省略了该参数,则 SQL Server 将根据指定的 @srvproduct 来选择默认的 OLE DB 提供程序。
@provider = N'SQLOLEDB',

-- nvarchar(4000) 【必填,远程数据库服务器地址】 链接服务器的数据源。
@datasrc = N'test.com,1433',
@location = N'', -- nvarchar(4000) 【非必填】 链接服务器的位置信息。
@provstr = N'', -- nvarchar(4000) 【非必填】 链接服务器的 OLE DB 提供程序特定的连接字符串。
@catalog = NULL -- sysname 【非必填】 链接服务器的默认目录名称。
--------------创建服务器连接 END --------------


-------------- 登录服务器BEGIN --------------
--EXEC sys.sp_addlinkedsrvlogin 是用于配置链接服务器登录信息的存储过程
EXEC sys.sp_addlinkedsrvlogin

-- 【必填】 远程服务器的名称。创建连接的时候手动 设置的名称 @server
@rmtsrvname = 'ITSV', -- sysname

--指定是否使用当前登录的身份信息。如果设置为 'true',表示使用当前登录用户的身份信息进行连接;如果设置为 'false',则需要提供远程服务器的用户名和密码。
@useself = 'false', -- varchar(8)

--在创建链接服务器时用来指定链接服务器上的登录名。指定了@locallogin后,当链接服务器执行查询时,将使用指定的登录名进行身份验证。
@locallogin = NULL, -- sysname

--远程服务器的用户名。当 @useself 设置为 'false' 时需要提供。
@rmtuser = 'bjjwsjyzzbkjyxgs_luiy588103', -- sysname

--远程服务器的密码。当 @useself 设置为 'false' 时需要提供。
@rmtpassword = 'P8%V&xRN705@124_' -- sysname

-------------- 登录服务器END --------------

-------------- 删除 服务器的连接 BEGIN --------------
-- 是用于删除链接服务器的存储过程 不用的时候删除 服务器的连接
EXEC sys.sp_dropserver

--要删除的链接服务器的名称。 创建连接的时候手动 设置的名称 @server
@server = 'ITSV', -- sysname

--可选参数,指定是否同时删除与该链接服务器相关联的登录信息。如果设置为 'droplogins',则会删除与该链接服务器相关联的登录信息;如果不设置该参数,则只删除链接服务器本身而保留登录信息。
@droplogins = 'droplogins' -- char(10)

-------------- 删除 服务器的连接 END --------------

 

----------批量 查询读取 远程服务器数据库表的数据 BEGIN ----------

--select FullName,UserCode, 1 from ITSV.数据库.dbo.表名称

----------批量 查询读取 远程服务器数据库表的数据  END ----------

 

更多参考 : https://www.cnblogs.com/tylerflyn/p/8339895.html

 

posted @ 2023-12-21 15:19  GU天乐乐乐!  阅读(337)  评论(0编辑  收藏  举报