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

面试题1:
表table1只有1列ID
insert into Table1 
select 1
union 
select 2
union
select 3
union
select 4
union
select 5
union
select 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语句,哪种更安全,不都是最终给存储过程执行了,说出他们的原理所在

倚天杖
浏览 466回答 4
4回答

互换的青春

关注第三个问题

婷婷同学_

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

杨__羊羊

第三个问题  例如  用户输入的  "1 ' or 1=1 --" 你的语句这样的   sql="delete  from  table where id='"+id+" ' ";把用户输入的数据填到里面 结果是sql="delete  from  table where id='1 ' or 1=1 -- ' "; 这导致的结果就是  你的表里所有数据都删掉了  求改也一样  查询就都会查出来  你可以试试  这就是注入攻击
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server