`
k_lb
  • 浏览: 799776 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

远程执行SQL或远程调用存储过程

 
阅读更多

    --远程连接
     if ( not exists(select * from sys.servers where name='remotedb'))
     begin
		EXEC   sp_addlinkedserver        
		   @server='remotedb',--被访问的服务器别名         
		   @srvproduct='',        
		   @provider='SQLOLEDB',       
		   @datasrc='192.168.0.153'   --要访问的服务器 
	end
     EXEC sp_addlinkedsrvlogin  --登录映射      
     'remotedb', --被访问的服务器别名       
     'false',        
     NULL,        
     'sa', --帐号       
     '123456' --密码 
    --使用:若使用过程中,提示找不到remotedb,可能是因为在sql cmd窗口执行的时序问题,可以在登录映射完了后,加一条go语句
     select * from remotedb.mydb.dbo.tablename  
    exec remotedb.mydb.dbo.ProcedureName
  --删除登录映射和服务器映射    
   Exec sp_droplinkedsrvlogin remotedb,Null       --删除映射(录与链接服务器上远程登录之间的映射)          
   Exec sp_dropserver  remotedb                    --删除远程服务器链接

以下附上sp_addlinkedserver和sp_addlinkedsrvlogin的参数说明

sp_addlinkedserver

创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® SQL Server™,则可执行远程存储过程。

语法

sp_addlinkedserver

[ @server = ] 'server'
[ , [ @srvproduct = ] 'product_name' ]
[ , [ @provider = ] 'provider_name']
[ , [ @datasrc = ] 'data_source']
[ , [ @location = ] 'location']
[ , [ @provstr = ] 'provider_string']
[ , [ @catalog = ] 'catalog']

参数

[ @server = ] 'server'

要创建的链接服务器的本地名称,server 的数据类型为 sysname,没有默认设置。

如果有多个 SQL Server 实例,server 可以为 servername\instancename。此链接的服务器可能会被引用为下面示例的数据源:

[ @srvproduct = ] 'product_name'

要添加为链接服务器的 OLE DB 数据源的产品名称。product_name 的数据类型为 nvarchar(128),默认设置为 NULL。如果是 SQL Server,则不需要指定 provider_namedata_sourcelocationprovider_string 以及目录。

[ @provider = ] 'provider_name'

与此数据源相对应的 OLE DB 提供程序的唯一程序标识符 (PROGID)。provider_name 对于安装在当前计算机上指定的 OLE DB 提供程序必须是唯一的。provider_name的数据类型为nvarchar(128),默认设置为 NULL。OLE DB 提供程序应该用给定的 PROGID 在注册表中注册。

[ @datasrc = ] 'data_source'

由 OLE DB 提供程序解释的数据源名称。data_source 的数据类型为 nvarchar(4000),默认设置为 NULL。data_source被当作 DBPROP_INIT_DATASOURCE 属性传递以便初始化 OLE DB 提供程序。

当链接的服务器针对于 SQL Server OLE DB 提供程序创建时,可以按照 servername\instancename 的形式指定data_source,它可以用来连接到运行于特定计算机上的 SQL Server 的特定实例上。servername 是运行 SQL Server 的计算机名称,instancename 是用户将被连接到的特定 SQL Server 实例的名称。

[ @location = ] 'location'

OLE DB 提供程序所解释的数据库的位置。location 的数据类型为 nvarchar(4000),默认设置为 NULL。location作为 DBPROP_INIT_LOCATION 属性传递以便初始化 OLE DB 提供程序。

[ @provstr = ] 'provider_string'

OLE DB 提供程序特定的连接字符串,它可标识唯一的数据源。provider_string 的数据类型为 nvarchar(4000),默认设置为 NULL。Provstr 作为 DBPROP_INIT_PROVIDERSTRING 属性传递以便初始化 OLE DB 提供程序。

当针对 Server OLE DB 提供程序提供了链接服务器后,可将 SERVER 关键字用作 SERVER=servername\instancename 来指定实例,以指定特定的 SQL Server 实例。servername 是 SQL Server 在其上运行的计算机名称,instancename 是用户连接到的特定的 SQL Server 实例名称。

[ @catalog = ] 'catalog'

建立 OLE DB 提供程序的连接时所使用的目录。catalog 的数据类型为sysname,默认设置为 NULL。catalog作为 DBPROP_INIT_CATALOG 属性传递以便初始化 OLE DB 提供程序。

sp_addlinkedsrvlogin

创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射。

语法

sp_addlinkedsrvlogin [ @rmtsrvname = ]'rmtsrvname'
[ , [ @useself = ] 'useself']
[ , [ @locallogin = ] 'locallogin']
[ , [ @rmtuser = ] 'rmtuser']
[ , [ @rmtpassword = ] 'rmtpassword' ]

参数

[@rmtsrvname =] 'rmtsrvname'

是应用登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。

[@useself =] 'useself'

决定用于连接到远程服务器的登录名称。useself 的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 SQL Server 验证的登录使用其自己的凭据以连接到rmtsrvname,而忽略 rmtuserrmtpassword 参数。false 值指定rmtuserrmtpassword 参数用来连接到特定 localloginrmtsrvname。如果rmtuserrmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useselftrue 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为true 的映射,不过创建仍然有效)。

[ @locallogin =] 'locallogin'

本地服务器上的登录。locallogin 的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到rmtsrvname 的本地登录。如果值不为 NULL,则 locallogin 可以是一个 SQL Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 SQL Server 或通过其作为已授予访问权限的组的成员来访问 SQL Server 的权限。

[@rmtuser =] 'rmtuser'

useselffalse 时,用来连接 rmtsrvname的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。

[@rmtpassword =] 'rmtpassword'

rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。

返回代码值

0(成功)或 1(失败)


分享到:
评论

相关推荐

    存储过程,触发器,远程数据库

    存储过程的编码,触发器的编码,远程数据库的编码

    VFP连接远程SQL数据库

    开发过程中遇到使用VFP连接远程SQL数据库,并且调用存储过程的情况

    Sybase数据库存储过程的建立和使用

    Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由 SQL语句和流程控制语句组成。...在远程SQL Server中运行等。文中还举例说明了建立和使用存储过程的语法规则。

    FTP存储过程(PL/SQL调用)

    FTP存储过程:可在PL/SQL中直接调用去获取远程FTP服务器中的文件。

    sql server 2000 远程数据同步store_proc(Transact SQL语言)

    这是一个基于TCP/IP的远程数据库数据同步存储过程(2002版,相关产品用到现在),全部功能用Transact SQL语言实现,调用了包括windows交互访问、TCP/IP访问等高级函数在内的大量sql内置系统函数,充分发挥了Transact...

    SQL Server中通过扩展存储过程实现数据库的远程备份与恢复

    本文通过实例解析了 SQL Server 数据库扩展存储过程,实现远程备份与恢复的方法和步骤实例说明: 环境:win2k+sqlserver 2K+查询分析器 SQL SERVER服务实例名称:mainserver 需要备份的数据库名称: msdb 本地机器名称...

    Sybase存储过程的建立和使用

    Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或批处理...在远程SQL Server中运行等。

    数据库存储过程的学习资料

    Sybase的存储过程是集中存储在SQL Server中的预先定义且已经编译好的事务。存储过程由SQL语句和流程控制语句组成。它的功能包括:接受参数;调用另一过程;返回一个状态值给调用过程或...在远程SQL Server中运行等......

    sql server

    第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用; 第三,对SQL或存储过程执行后返回的“结果”进行操作。 对返回“结果”的操作可以分为两类: 一是用SqlDataReader直接一行一行的读取数据集; 二是...

    MySQL数据库存储过程和事务的区别讲解

    存储过程是把一批SQL语句预编译后放在服务器上,然后可以远程调用 存储过程: 一组为了完成特定功能的SQL语句集(或者自定义数据库操作命令集), 根据传入的参数(也可以没有), 通过简单的调用, 完成比单个SQL...

    SQL查询安全性及性能优化

    只能执行存储过程中固定的代码 限制输入长度 防止黑客输入超大字符串,导致服务器瘫痪 防止黑客输入较长的恶意脚本等 实现方法:文本框的MaxLength属性 URL重写技术 示例: http://testWeb/news.aspx?id=111 ...

    kbmmw+unidac+sqlserver2000例子

    5、存储过程使用方法(存储过程参数自动创建) 6、动态创建数据集并执行Insert操作 7、命名查询(namedQuery) 8、事务操作(直接写SQL语句更新表的事务操作,有个重要的属性要设置,否则会更新不成功) 9、使用的数据库:...

    经典SQL语句大全

    exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。Rid为一个标识列,如果top后还有具体的字段,这样做是非常有好处的。因为这样可以避免 top的字段如果是...

    SQLServer2008查询性能优化 2/2

    9.8.3 使用sp_executesql编程以避免存储过程维护 252 9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变...

    SQLServer2008查询性能优化 1/2

    9.8.3 使用sp_executesql编程以避免存储过程维护 252 9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变...

    SQLSERVER分布式事务使用实例

    –SQLSERVER使用链接服务器或者远程服务器作为分布式事务处理的平台,提供–远程存储过程调用和分布式查询 –当使用分布式事务进行一个远程存储过程调用和一个分布式查询时,在SERVER A–上发出BEGIN DIST

    达梦数据库_SQL语言手册

    达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...

    Toad 使用快速入门

    可以自定义存储过程得模板,在新建存储过程的时候,自动生成程序的框架可以方便的调用Schema Browser,把鼠标定位于某个对象上,F4,Schema Browser打开该对象的详细描述,帮助顺利快速开发程序。支持代码自动更正,...

    Access传递查询_说明

    SQL字符串包含一个或多个事务SQL语句,或者包含一个SQL程序流程控制语句的复杂过程,还可调用存在于Sql Server上的存储过程。 ODBC连接字符串来标识命令字符串将要发送的数据源,连接字符串也可包括指定Sql Server...

    sql经典语句一部分

    经典SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice ...

Global site tag (gtag.js) - Google Analytics