当前位置: 首页 > news >正文

深圳网站开发找哪里萍乡网站建设萍乡

深圳网站开发找哪里,萍乡网站建设萍乡,哪个网站可以做销售记录,wordpress 顶部公告EXEC Exec 命令有两种用法 1、执行存储过程 2、执行动态的批处理 exec 存储过程 参数 值 --或 exec 存储过程 值 exec 存储过程 存储过程中的参数参数{接受参数返回值} outputCREATE PROCEDURE [dbo].[Sp_GetStudent]Score FLOAT,Nums INT OUTPUT AS BEGINSET NOC…EXEC Exec 命令有两种用法 1、执行存储过程 2、执行动态的批处理 exec 存储过程 参数 值 --或 exec 存储过程 值 exec 存储过程 存储过程中的参数参数{接受参数返回值} outputCREATE PROCEDURE [dbo].[Sp_GetStudent]Score FLOAT,Nums INT OUTPUT AS BEGINSET NOCOUNT ON;SELECT * FROM t_student WHERE Score ScoreSELECT NumsCOUNT(1) FROM t_student WHERE Score ScoreIF(Nums0)RETURN 1ELSERETURN 0 END GO DECLARE return_value int,OutNums int EXEC return_value [dbo].[Sp_GetStudent] Score 90,Nums OutNums OUTPUT SELECT OutNums as N大于90分的人数 SELECT 返回值 return_value GOexec (select * from mytable) 使用EXEC执行动态sql语句注意下面问题 1.不能有输入参数输出参数 DECLARE i AS INT; SET i 10248; DECLARE sql AS VARCHAR(52); SET sql SELECT * FROM dbo.Orders WHERE OrderID i;; EXEC(sql); GO 2.圆括号内部能使用函数或case表达式 ----下面的脚本是错误的 DECLARE schemaname AS NVARCHAR(128), tablename AS NVARCHAR(128); SET schemaname Ndbo; SET tablename NOrder Details; EXEC(NSELECT COUNT(*) FROM QUOTENAME(schemaname) N. QUOTENAME(tablename) N;); GO ------不过把函数放在变量中是可以的 DECLARE schemaname AS NVARCHAR(128), tablename AS NVARCHAR(128), sql AS NVARCHAR(539); SET schemaname Ndbo; SET tablename NOrder Details; SET sql NSELECT COUNT(*) FROM QUOTENAME(schemaname) N. QUOTENAME(tablename) N; EXEC(sql); 3.不能利用重用执行计划存所以存在性能问题 DECLARE i AS INT; SET i 10248; DECLARE sql AS VARCHAR(52); SET sql SELECT * FROM dbo.Orders WHERE OrderID CAST(i AS VARCHAR(10)) N;; EXEC(sql); GO 4、容易被sql注入存在安全问题。 DECLARE lastname AS NVARCHAR(40), sql AS NVARCHAR(200); SET lastname N DROP TABLE dbo.Employees --; SET sql NSELECT * FROM dbo.Employees WHERE LastName lastname ;; EXEC sql; GO --实际sql SELECT * FROM dbo.Employees WHERE LastName DROP TABLE dbo.Employees --;注意 EXEC 执行拼接的SQL语句的时候不支持内嵌参数包括输入参数和输出参数。有的时候我们想把得到的count(*)传出来用EXEC是不好办到的 sp_executesql 重用执行计划提供更好的支持 语法结构 sp_executesql [ stmt ] stmt [ {, [params] N’parameter_name data_type [ OUT | OUTPUT ][,…n]’ } {, [ param1 ] ‘value1’ [ ,…n ] } ] exec sp_executesql stmtstatement,----类似存储过程的主体 paramsparams,-----类似存储过程的参数部分 params assignment----类似存储过程的调用 --stmt参数是输入的动态批处理它可以引入输入参数或输出参数和存储过程的主体语句一样只不过它是动态的而存储过程是静态的不过你可以在存储过程中使用sp_executesql ---params参数于定义输入、输出参数的存储过程头类似实际上和存储过程的语法完全一样 --params assignment与调用存储过程的exec部分类似DECLARE TotalSqlStr NVARCHAR(MAX); SET TotalSqlStr SELECT TotalRecords COUNT(p.Id) FROM (SELECT MainSqlStr FilterStr ) AS p;EXEC sp_executesql TotalSqlStr, NTotalRecords INT OUTPUT, TotalRecords OUTPUT如果你要把输出返回给调用批处理中的变量事情就没有那么简单了。为此你必须使用INSERT EXEC语法把输出插入到一个目标表中然后从这表中获取值后赋给该变量就像这样 DECLARE sql NVARCHAR(MAX),RecordCount INT SET sql SELECT COUNT(ORDERID) FROM Orders; CREATETABLE #T(TID INT); INSERT INTO #T EXEC(sql); --这里是一个表格 SET RecordCount (SELECT TID FROM #T) SELECT RecordCount DROP TABLE #T SP_EXECUTESQL 支持内嵌参数 因为参数是运行时传递进去SQL的而不是编译时传递进去的传递的参数是什么就按照什么执行参数本身不参与编译 所谓的参数化SQL就是用变量当做占位符通过 EXEC sp_executesql执行的时候将参数传递进去SQL中在需要填入数值或数据的地方使用参数 (Parameter) 来给值这样的话 第一既能避免第一种写法中的SQL注入问题包括转移符的处理    因为参数是运行时传递进去SQL的而不是编译时传递进去的传递的参数是什么就按照什么执行参数本身不参与编译 第二保证执行计划的重用因为使用占位符来拼凑SQL的SQL参数的值不同并导致最终执行的SQL文本不同    同上面参数本身不参与编译如果查询条件一样SQL语句就一样而参数不一样并不会影响要编译的SQL文本信息 缺点1,对于这种方式也有一点不好的地方就是拼凑的字符串处理过程中调试具体的SQL语句的时候参数是直接拼凑在SQL文本中的不能直接执行要手动将占位参数替换成具体的参数值
http://www.w-s-a.com/news/573750/

相关文章:

  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司
  • 基础微网站开发咨询中国印花图案设计网站
  • 找最新游戏做视频网站天津市招标投标公共服务平台
  • 电影订票网站怎么做注册地址出租多少钱
  • 做网站的规划和设想怎样做能让招聘网站记住密码
  • 建站知乎网站公告建设方案
  • 济南市住房和城乡建设局官方网站淮阳住房和城乡建设网站
  • 网站的设计特点有哪些seo推广要多少钱
  • wordpress开通多站点好处软件开发外包公司的设计一般多少钱
  • 为什么我的网站做不起来微信网页版登录手机版下载
  • 苏州市建设职业中心网站北京网站优化方法
  • 于飞网站开发溧阳 招网站开发
  • 网站中的宣传册翻页动画怎么做长沙有哪些网络平台公司
  • 如何做视频门户网站网站建设模板ppt