日期:2014-05-18  浏览次数:20583 次

------------------exec与临时表的问题
--temprature   table   time
declare   @i   int
declare   @tem_timer   table
(
TimerID   [tinyint],
TimerEmpty   [varchar](20)
)
set   @i=1
while   @i <=24
begin
    insert   into   @tem_timer   values(@i, ' ')
    set   @i=@i+1
end
--end

declare   @sqlstr   nvarchar(4000)
set   @sqlstr= 'select   *   from   '+@tem_timer
exec       sp_executesql       @sqlstr

報錯:
伺服器:   訊息   137,層級   15,狀態   2,行   33
必須宣告變數   '@tem_timer '。

查臨時表不可以這樣用嗎?

謝謝!

------解决方案--------------------
--temprature table time
declare @i int
create table #tem_timer
(
TimerID [tinyint],
TimerEmpty [varchar](20)
)
set @i=1
while @i <=24
begin
insert into #tem_timer values(@i, ' ')
set @i=@i+1
end
--end

declare @sqlstr nvarchar(4000)
set @sqlstr= 'select * from #tem_timer '
exec sp_executesql @sqlstr
------解决方案--------------------
declare @sqlstr nvarchar(4000)
set @sqlstr= '
declare @i int
declare @tem_timer table
(
TimerID [tinyint],
TimerEmpty [varchar](20)
)
set @i=1
while @i <=24
begin
insert into @tem_timer values(@i, ' ' ' ')
set @i=@i+1
end
select * from @tem_timer '
exec sp_executesql @sqlstr