极限面试 - 写出第10层的EXEC

SQLCenter 2010-10-30 08:49:38
declare @name sysname
set @name = 'sysobjects'

-- 第1层
exec('select * from sys.system_objects where name='''+@name+'''')
-- 第2层
exec('exec(''select * from sys.system_objects where name='''''+@name+''''''')')



1、写出第10层的EXEC,可以使用varchar(max)

2、极限层是哪一层?
...全文
1303 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
llkkzz111 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 54 楼 vidor 的回复:]
SQL code
declare @name sysname
select @name = 'sysobjects'

declare @1 varchar(max) = ''
declare @2 varchar(max) = ''
declare @s varchar(max) = char(39) -- varchar(max) 否则 replicate(@s, 8192) = ……
[/Quote]

不懂 ╮(╯▽╰)╭
上善_若水 2010-11-09
  • 打赏
  • 举报
回复
出题的的绝对蛋疼,而且,不是一般的疼!!!
jywbd 2010-11-09
  • 打赏
  • 举报
回复
呵呵,没看懂
yzj860704 2010-11-09
  • 打赏
  • 举报
回复
好复杂。对我来说
ljzforever 2010-11-08
  • 打赏
  • 举报
回复
想搞什么飞机?
ltlljl12 2010-11-06
  • 打赏
  • 举报
回复
学习ing,关注
Vidor 2010-11-06
  • 打赏
  • 举报
回复
declare @name sysname
select @name = 'sysobjects'

declare @1 varchar(max) = ''
declare @2 varchar(max) = ''
declare @s varchar(max) = char(39) -- varchar(max) 否则 replicate(@s, 8192) = 8000
declare @q varchar(max)

select
-- varchar(max)最大2^31-1, number极限30, 加上N个exec溢出, 极限29
@1 = @1 + 'exec(' + replicate(@s, power(2,number)),
@2 = replicate(@s, power(2,number)) + ')' + @2
from
master..spt_values
where
type='P' and number between 0 and 14
-- 14以内无明显慢的感觉, 超过14开始感觉明显.

set @q = replicate(@s, power(2,@@rowcount))

-- number=29: 内嵌30个exec, 加上最外层共31层, 极限中的极限:
exec (@1+'select * from sys.system_objects where name='+@q+@name+@q+@2)


13楼、18楼用单个变量的要减3层,13楼极限推算正确,单个变量极限确实是28层。
超级大笨狼 2010-11-06
  • 打赏
  • 举报
回复
可以写出第一万层的exec
zzPandazz 2010-11-06
  • 打赏
  • 举报
回复
[Quote=引用 39 楼 laojiusyh 的回复:]
都不知道是些什么东西,不懂
[/Quote]
就是在exec调用里套exec调用,再嵌套......
zoffor 2010-11-06
  • 打赏
  • 举报
回复
每次都手动数引号的 飘过
18楼的方法 执行了1个小时零6分钟,才执行到25层。。。不得已取消了
时间也是级数增加
zzPandazz 2010-11-06
  • 打赏
  • 举报
回复
好BT
woshi720 2010-11-05
  • 打赏
  • 举报
回复
每天回帖真的可以获得10分可用分么
ok1411 2010-11-05
  • 打赏
  • 举报
回复
不懂,看看
changeZ 2010-11-05
  • 打赏
  • 举报
回复
真的很不一般....
YangpiMajia 2010-11-05
  • 打赏
  • 举报
回复
exec 有没有最长64K限制啊?
jiyu2008420 2010-11-05
  • 打赏
  • 举报
回复
不太懂,来凑个热闹!
cedvfr 2010-11-05
  • 打赏
  • 举报
回复
腻害啊 我佩服
鸭梨山大帝 2010-11-04
  • 打赏
  • 举报
回复
我只能表示说,很蛋疼.
sh_suyuelin 2010-11-04
  • 打赏
  • 举报
回复
人才。都没接触过着东西。有什么用啊。
xiaolinvfp 2010-11-04
  • 打赏
  • 举报
回复
呵呵,牛人啊
加载更多回复(29)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧