日期:2014-05-17  浏览次数:20582 次

sql 临时表
 

declare @t Table

 

 

(

CaseNo 

varchar(20)

 

)

 

 

with TempTable as

 

 

(

 

select CaseNo fromAdmin.SetupAlert

 

)

 

 

 

insert into @t(CaseNo)

 

select CaseNo from TempTable

 

select*from @t 

这么写是错误的,

而下面这种写法是正确的,为什么呢?

declare

 

 @t Table

 

 

(

CaseNo 

varchar(20)

 

)

 

insert into @t(CaseNo)

 

select CaseNo from (select CaseNo fromAdmin.SetupAlert) t

 

select*from @t



------最佳解决方案--------------------
1、如果with不是整篇代码的开头,签名要加分号。
2、with的结果集只能在紧接着的地方用一次,后面就不能用了
------其他解决方案--------------------
语法规定的  没啥理由