分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
过去我执行拼凑出来的动态SQL语句,都直接使用EXEC @sql 的方式。有好几次,都看到有资料说,应该尽量使用 sp_executesql。
究其原因,是因为仅仅参数不同的情况下,sp_executesql可以重用执行计划,这不就有跟存储过程一样的优势了吗?同时,sp_executesql还可以提供动态SQL语句执行的返回值,方便得很。
但sp_executesql的使用方式看上去比较复杂,一点都不像EXEC那样直观。
用法:
EXEC sp_executesql SQL语句,参数声明,参数
如
CREATE TABLE #tmp(t INT NOT NULL,it DECIMAL(18,4),pt DECIMAL(18,4)); INSERT INTO #tmp(t,it,pt) VALUES(1,10.00,15.00); INSERT INTO #tmp(t,it,pt) VALUES(2,20.00,30.00); DECLARE @sql NVARCHAR(2000) = N'SELECT @it=it,@pt=pt FROM #tmp WHERE t=@tN;'; DECLARE @Param NVARCHAR(500) = N'@tN INT,@it DECIMAL(18,4) OUTPUT,@pt DECIMAL(18,4) OUTPUT'; DECLARE @tN INT,@it DECIMAL(18,4),@pt DECIMAL(18,4); SET @tN = 1; --@tN=@tN,第一个@tN是@Param里的声明,而第二个@tN则是外部的声明,其他类似 EXEC sp_executesql @sql,@Param,@tN=@tN,@it=@it OUTPUT,@pt=@pt OUTPUT; SELECT @it,@pt; DROP TABLE #tmp;
为什么有返回值那么重要呢?我在不知道这个用法以前,如果需要捕捉动态SQL语句里的返回值,要借用表对象:
详见拙作:
http://blog.csdn.net/leftfist/article/details/12840785
declare @sql NVARCHAR(MAX) = N'SELECT @i,@j;';declare @paramdefine NVARCHAR(MAX) = N'@i INT,@j INT,@k INT=3';exec sp_executesql @sql,@paramdefine,@i=1,@j=2;
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command +