为了账号安全,请及时绑定邮箱和手机立即绑定

微软面试遇到的sql题目,大家没事可以看看。。

微软面试遇到的sql题目,大家没事可以看看。。

倚天杖 2018-12-06 20:20:27
面试题1:表table1只有1列IDinsert into Table1  select 1union  select 2unionselect 3unionselect 4unionselect 5unionselect 6需要转换为123456789快速写出有几种写法,我第一感觉是列转换行,仔细一想又更简单的方法: SQL code DECLARE@STRVARCHAR(2000) select@STR=ISNULL(@STR+'','')+convert(varchar(10),ID) from (select ID from table1)AS T select@STR 面试题2:说出下面sql关键字具体用法,举例说明。 over pivot with Merge output  这里我只给关键字Merge用法,它在SQL Server 2008被引入http://www.cnblogs.com/lenxu/archive/2012/02/14/2350922.html面试题3是关于C#和sql的:C#中注入攻击,拼接字符串为什么可以注入攻击?而输入sql关键字可以注入工具,普通A,B字段不行,举例说明?SqlParameter和拼接sql语句,哪种更安全,不都是最终给存储过程执行了,说出他们的原理所在
查看完整描述

4 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

关注第三个问题

查看完整回答
反对 回复 2019-01-07
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

第三个肯定是参数更安全了,如类型检测,能保证输入的东西只能当参数使用,如注入的恶意脚本只会被解析成字符串的值,等等吧。

查看完整回答
反对 回复 2019-01-07
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

第三个问题  例如  用户输入的  "1 ' or 1=1 --"

你的语句这样的   sql="delete  from  table where id='"+id+" ' ";把用户输入的数据填到里面

结果是sql="delete  from  table where id='1 ' or 1=1 -- ' ";

这导致的结果就是  你的表里所有数据都删掉了  求改也一样  查询就都会查出来  你可以试试  这就是注入攻击

查看完整回答
反对 回复 2019-01-07
  • 4 回答
  • 0 关注
  • 465 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信