由于业务需求,我的SqlServer数据库通过MySQL的ODBC驱动连接了一个远程MySQL数据库,在SqlServer上要怎么远程执行MySQL命令呢,经过一番百度,将练习内容整理如下
/* OPENQUERY函数,远程执行数据库增删改查 关于OPENQUERY函数第二个参数不支持拼接变量的方案 方案1:将OPENQUERY语句整个拼接为字符串,再用EXEC执行该字符串语句 方案2:将要拼接的变量直接挪移到括号外进行拼接 由于字符串中单引号多层引用需要用到很多个单引号,容易混淆,导致方案1写起来头疼、眼睛疼,但是自由度大,想怎么来就怎么来。 而方案2能够清晰简洁地使用变量,但经我目前的测试,发现只有SELECT语句和DELETE语句的WHERE子句可以挪移出来(见上方SQL语句),限制太大。 OPENQUERY(MySQL, 'select * from hhp_user where chrusername = ''hhp'';') 第一个参数为配置好的链接服务器名称,第二个参数为要执行的MySQL命令 */ DECLARE @username NVARCHAR(50), @pwd VARCHAR(64), @pwdmd5 VARCHAR(64), @sql VARCHAR(2000), @sql2 VARCHAR(2000) --设置用户名 SET @username = 'hhp' --设置密码 SET @pwd = '123456' --对密码进行MD5加密 SET @pwdmd5 = SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5', @pwd)),3,32) --1.SELECT语句 SELECT * FROM OPENQUERY(MySQL, 'select * from hhp_user where chrusername = ''hhp'';'); --或 SELECT * FROM OPENQUERY(MySQL, 'select * from hhp_user') WHERE chrusername = @username --2.INSERT语句,INTO可省略 INSERT INTO OPENQUERY(MySQL,'select chrusername,chrpwd from hhp_user;') VALUES( @username , @pwdmd5) --3.UPDATE语句 SET @pwd = 'hhp' SET @pwdmd5 = SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5', @pwd)),3,32) UPDATE OPENQUERY(MySQL, 'select chrusername, chrpwd from hhp_user where chrusername = ''hhp''') SET chrpwd = @pwdmd5 --4.DELETE语句,FROM可省略 DELETE FROM OPENQUERY(MySQL, 'select * from hhp_user where chrusername = ''hhp''') --或 SET @username = 'ls' DELETE FROM OPENQUERY(MySQL, 'select * from hhp_user') WHERE chrusername = @username
REFS:http://blog.csdn.net/u012143455/article/details/49929137
相关推荐
在SQL Server 2005中调用WebService方法是一种集成外部服务到数据库操作中的技术,这对于数据交互和扩展SQL Server的功能至关重要。以下将详细介绍如何实现这一功能,以及相关的知识点。 一、理解SQL Server与Web ...
"SQL Server 操作 MySQL 的步骤和方法" 在多种数据库环境下,经常会遇见在...可以查询,可以在 SQL SERVER 中单独执行增删改,可以正常执行。但在存储过程中,增删改增加事务时就会报错,将事务注释又可以进行增删改。
- 通过链接服务器访问其他数据库系统时,SQL Server实例可以通过OpenQuery函数调用其他服务器上的SQL语句,并获得查询结果。 4. SQL Server对Proficy Historian数据库的访问和数据整合方法 - 文章通过实例展示了...
4. **SQL Server 分布式查询**:利用`OPENQUERY`函数,可以在SQL Server查询中执行远程数据源的查询,从而导入Excel数据。 5. **ActiveX数据对象(ADO)和OLE DB Provider**:通过编程方式,使用ADO和特定的OLE DB提供...
最后,MS SQL Server调用索引服务器进行查询有两种常见方法。一是使用`OpenQuery`函数,结合`CONTAINS`函数在SQL语句中进行全文检索。二是利用SQL Server的全文搜索功能,将文件内容存储在`image`字段,文件类型信息...
`OPENQUERY`函数允许在远程服务器上执行SQL语句,如`SELECT StatusCode = p_msg FROM OPENQUERY(HI4DB_MS, '' + QueryStr + '')`。 5. 处理不同情况:根据需要,你可以调整查询语句以获取不同数量的结果。例如,`...
SQL Server的链接服务器技术是一种强大的特性,它允许SQL Server实例与其他数据源进行交互,包括其他SQL Server实例、MySQL、Oracle数据库、甚至文本文件。通过链接服务器,你可以执行跨数据库的查询,实现数据集成...
- RPC 和 RPC OUT 是 SQL Server 中的选项,允许远程调用过程。启用这两个选项对于在链接服务器上执行远程存储过程至关重要: ```sql exec sp_serveroption @server='DBLINK_DGPRIMARY', @optname= 'rpc', @...
SQL Server的链接服务器技术是一种强大的特性,允许在不同的数据源之间进行跨服务器查询和操作,如MySQL、Oracle、文本文件甚至是其他SQL Server实例。本文主要总结了如何使用SQL Server的链接服务器来连接到不同...
通过链接服务器,用户可以执行跨服务器的JOIN操作,调用远程服务器的存储过程,甚至执行事务处理跨越多个数据库系统。然而,需要注意的是,这种技术可能会增加网络负载和性能开销,因此在设计和使用时需要谨慎考虑...
在SQL Server中调用索引服务通常涉及使用`OpenQuery`函数,构造查询语句,例如,通过`CONTAINS`函数指定要搜索的关键词。需要注意的是,由于SQL语句不支持动态字符串,因此可能需要在应用程序(如C#)中预先构建查询...
理解如何使用分布式查询,包括链接服务器、开放查询(OPENQUERY)和OPENROWSET函数,可以帮助开发跨数据库的应用。 通过深入学习这些知识点,开发者和数据库管理员可以更好地管理和优化SQL Server环境,从而提高...
在SQL Server 2005中,链接服务器功能允许用户执行跨数据库查询,即使这些数据库不在同一台服务器上。在本例中,我们探讨的是如何使用SQL Server 2005连接到MySQL数据库进行数据交互。以下是实现这一目标的具体步骤...
例如,在SQL脚本或存储过程中,可以使用OPENQUERY函数来执行HANA上的SQL语句,或者使用SSIS(SQL Server Integration Services)进行数据导入导出。 5. **性能优化**:为了最大化性能,需要了解并调整ODBC驱动的...
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...
### SQL语言大全之函数应用详解 #### 概述 在SQL语言中,函数是一类重要的工具,用于处理从数据库表中检索出的数据,使其成为更有意义的信息。这不仅包括简单的数学计算,还涉及数据类型转换、数值解析、值的组合...
首先,给出的SQL语句使用了`OPENROWSET`函数,这是SQL Server提供的一种直接访问外部数据源的机制,允许执行一次性的、非持久化的分布式查询。在这个例子中,`OPENROWSET`用于连接到远程服务器`192.168.2.97`上的...
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db ...
为了能够跨数据库执行查询操作,需要在SQL Server中创建链接服务器。具体步骤如下: 1. **使用`sp_addlinkedserver`命令:** - `EXEC sp_addlinkedserver @server='test', @srvproduct='', @provider='MSDASQL', @...