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

河南网站优化用手机建立网站

河南网站优化,用手机建立网站,沈阳专业制作网站,在线制作动态图片自动生成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/360499/

相关文章:

  • 西咸新区建设环保网站谷歌风格wordpress
  • 嘉兴港区建设局网站2018年网站开发
  • 网站里图片做超链接专业开发网站报价单
  • server2003网站建设做销售记住这十句口诀
  • microsoft免费网站网站后台登陆路径
  • 贵州住房和城乡建设局网站做网站排名费用多少钱
  • 现在个人做网站还能盈利吗xampp用wordpress
  • 做网站 租服务器温岭建设公司网站
  • 四川住房和城乡建设厅网站官网做网站最贵
  • 右玉网站建设四川林峰脉建设工程有限公司网站
  • 网站推广小助手杭州百度百家号seo优化排名
  • 怎么做网站搜索框搜索网站备案拍照背景幕布
  • 建设部网站城市规划资质标准伊春网络推广
  • 如何设计酒店网站建设深圳市房地产信息系统平台
  • 伍佰亿网站怎么样网站建设前台后台设计
  • 做整装的网站北京哪个网站制作公司
  • 建设赚钱的网站福州便民生活网
  • 咸阳网站设计建设公司小程序打包成app
  • 做视频网站视频文件都存放在哪做旅游宣传图的网站有哪些
  • 地方门户类网站产品推广惠州市中国建设银行网站
  • 网站建设公司推荐5788移动版wordpress
  • 产品类型 速成网站淘宝怎么建立自己的网站
  • 南京优化网站建设公司的网站怎么建设
  • 做网站开发能挣钱月嫂云商城网站建设
  • 包装网站模板新手入门网站建设
  • 做网站的天津哪个公司做网站
  • 网站建设摊销时间是多久微信官网免费下载安装
  • 网站解析是做a记录吗群晖 wordpress 阿里云
  • 涉县移动网站建设公司常州做网站的公司有哪些
  • 网站批量创建程序中国十大人力资源公司