【基本功测试】不要运行,来猜猜运行结果

guguda2008 2014-09-24 01:04:55
不运行光分析语句,下面这段代码会输出什么样的结果?
if 'a'='b'
begin

DECLARE @t TABLE(i int)

insert into @t
select 1

create table #t(j int)
insert into #t
select 2


end

SELECT *
FROM @t

select *
from #t

是男人就别作弊
...全文
216 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hleb231 2014-09-24
  • 打赏
  • 举报
回复

变量可以声明在任何地方,管你IF 成不成产
是这个意思吧。
还在加载中灬 2014-09-24
  • 打赏
  • 举报
回复
按另外一个贴的结果,我猜 临时表的应该会的报错
hleb231 2014-09-24
  • 打赏
  • 举报
回复

声明  不受 IF 语句控制?
hleb231 2014-09-24
  • 打赏
  • 举报
回复

根本就不会执行begin 语句块。
Vidor 2014-09-24
  • 打赏
  • 举报
回复
@t有效#t无效
释怀355_H 2014-09-24
  • 打赏
  • 举报
回复
执行了,没明白为什么只有一个报错
黑暗中的光芒 2014-09-24
  • 打赏
  • 举报
回复
@t 应该会丢失
guguda2008 2014-09-24
  • 打赏
  • 举报
回复
引用 2 楼 DBA_Huangzj 的回复:
为了证明猜测,还是执行了一下,结果。。嘿嘿
我为了让人踩坑特意把注释去掉又加了干扰语句,哈哈哈哈
發糞塗牆 2014-09-24
  • 打赏
  • 举报
回复
xiaodongni 2014-09-24
  • 打赏
  • 举报
回复
是因为表变量和临时表内部存储机制问题?
xiaodongni 2014-09-24
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
纯看代码,if部分不知道,只执行 SELECT * FROM @t select * from #t 这部分 应该会报错两个东西不存在
敢问 这是为啥?
xiaodongni 2014-09-24
  • 打赏
  • 举报
回复
我也是觉得报错 不存在
發糞塗牆 2014-09-24
  • 打赏
  • 举报
回复
为了证明猜测,还是执行了一下,结果。。嘿嘿
發糞塗牆 2014-09-24
  • 打赏
  • 举报
回复
纯看代码,if部分不知道,只执行 SELECT * FROM @t select * from #t 这部分 应该会报错两个东西不存在

11,850

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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