--少了一个声明变量@table
declare @table nvarchar(50)
declare  @ti_id  nvarchar(50)  --用于接受返回的ti_id  
declare  @exec_sql  nvarchar(1000)  
set  @exec_sql='select  @ti_id=ti_id  '  +  
                'from   @table  '  exec  sp_executesql  @exec_sql,N'@ti_id  nvarchar(50)  output,@table  nvarchar(50)',@ti_id=@ti_id  output,@table=@table  
print  @ti_id