拼凑式的SQL语句太普遍了,比如说,任意条件的查询。

这种拼凑SQL语句,如果在数据库端组装,必然是一条长长的字符串,然后 exec(@sql)。

如果这条语句写在存储过程里边,存储过程的调用方会获得查询结果。但假如是这个存储过程里面就想拿到结果来进行处理,怎么办呢?

select exec(@sql)必然是错的。

可以酱紫:

declare @t TABLE
(
[CatchResultID] [bigint] NOT NULL,
[WebSiteKeyWordID] [int] NULL,
[Url] [varchar](300) NULL,
[Title] [varchar](300) NULL,
[CatchDate] [smalldatetime] NULL
); DECLARE @ID INT = 525215449;
--使用了链接服务器,调用其数据库里的自定义函数
declare @sql varchar(1000) = 'SELECT * FROM OPENQUERY([192.168.15.2,8888]
,''SELECT * FROM [db].dbo.cr_func_GetCatchResultById(' + CAST(@ID AS varchar(50)) + ')'');';
INSERT INTO @t(
[CatchResultID]
,[WebSiteKeyWordID]
,[Url]
,[Title]
,[CatchDate]
)
exec(@sql);
--看,里面有结果矣
select * from @t;

为什么使用链接服务器的函数要用拼凑SQL呢,主要是因为有参数。而使用链接服务器的函数,不可以这样的:

SELECT * FROM OPENQUERY([192.168.15.2,8888],@sql);

===========================================================

很遗憾,这种方式不能用在SQL的函数里,否则报错:

在函数内对带副作用的运算符 'INSERT EXEC' 的使用无效

最新文章

  1. 【C语言】10-字符和字符串常用处理函数
  2. PC-1500与PC通讯
  3. 45度地图遮挡问题解决方案(cocos2d-x)
  4. ASP.NET Core MVC压缩样式、脚本及总是复制文件到输出目录
  5. MPSOC之4——petalinux提取源码
  6. 1.移植uboot-分析uboot启动流程(详解)
  7. 个人的MySql配置总结
  8. [编织消息框架][JAVA核心技术]动态代理应用11-水平扩展实现
  9. 16-TypeScript装饰器模式
  10. Swift 4 经典数据结构 Data Struct大全
  11. shell 处理小数位加减法(比较)运算
  12. spring MVC如何获取session传值到前台
  13. GIS 案例教程-蜂窝多边形制作模型
  14. Ubuntu16.04中安装搜狗输入法
  15. hashCode方法的作用?
  16. java 向上转型和向下转型
  17. 基于设备树的TQ2440的中断(2)
  18. 【Socket】linux广播技术
  19. C#入门经典 第六章 委托
  20. 安装Apache时端口号被占用解决方案

热门文章

  1. C99C新增内容
  2. django模型层(二)
  3. 搭建Hive所遇到的坑
  4. 2、scala条件控制与循环
  5. Dll中的方法向外返回dynamic类型可能会失败
  6. c#日期计算
  7. (转)基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作
  8. mac 上执行 rm -rf /
  9. Jenkins构建项目
  10. 【剑指Offer】42、和为S的两个数字