MySQL技巧之跨服务器数据查询:基础篇-动态参数
上一篇已经描述:借用微软的SQL Server + ODBC 即可实现MySQL跨服务器间的数据查询。
而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL
以及用同样的方法,做的另一个连接名 MY_ODBC_MYSQL2
还实现了第一次查询,在MS SQL Server打开一个新查询,输入以下脚本:
SELECT Q.country_code, Q.country_name
FROM OPENQUERY(MY_ODBC_MYSQL, ’
SELECT country_code, country_name FROM country
WHERE Code = ‘‘IR’’
') AS Q
下面开始稍微加点难度,如何给上面的查询加一个动态查询条件?
DECLARE @QryStr nvarchar(4000) – 查询脚本
SET @QryStr =
’ SELECT Q.country_code, Q.country_name ’ +
’ FROM OPENQUERY(MY_ODBC_MYSQL, ‘’’ +
’ SELECT country_code, country_name FROM country ’ +
’ WHERE country_code = ‘’‘’’ + ‘IR’ + ‘’‘’‘’ +
‘’') AS Q ’
EXEC sp_executesql @QryStr
‘IR’ 就是一个动态的参数,你也可以先赋值给一个变量,然后再拼接语句。
请记住以上套路,特别注意单引号的个数。里面为什么是四个单引号?上一课不是二个单引号吗?因为这里需要拼接,每+一次组成新串,就要多一倍的单引号。
妙!高!实在是高!
加粉丝看
MySQL技巧系列之《未经证实的葵花宝典》:一篇可以当饭吃的MySQL文章,值得收藏
总结:借用微软的SQL Server + ODBC 即可实现MySQL跨服务器间的数据查询。使用OPENQUERY函数,把动态语句拼接好,执行 EXEC sp_executesql @QryStr 即可。