USE Application_db_S
GO
IF OBJECT_ID(N'#tempTable',N'U') IS NOT NULL
  drop table #tempTable;
go
USE Application_db_S
go SET NOCOUNT ONSELECT * INTO #tempTable from dbo.MDTEN;declare @w_Val intselect @w_Val = count(*) from #tempTable;print @w_Val
go
这个第一次运行没问题,但是第2次运行的时候老说这个临时表存在
我这不是假如存在的话删除吗?我是从msdn拷过来的顺便问一下,(N'#tempTable',N'U')的N是什么意思?
还有,object_id为一个参数的时候我明白,两个参数的时候是什么意思?谢谢

解决方案 »

  1.   

    USE Application_db_S
    GO
    IF OBJECT_ID(N'tempdb..#tempTable',N'U') IS NOT NULL
      drop table #tempTable;
    go
    USE Application_db_S
    go SET NOCOUNT ONSELECT * INTO #tempTable from dbo.MDTEN;declare @w_Val intselect @w_Val = count(*) from #tempTable;print @w_Val
    go
      

  2.   

    臨時表是放在tempdb數據庫中的
      

  3.   

    USE Application_db_S
    GO
    IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
      drop table #tempTable;
    go
      

  4.   


    N是unicode的意思
    后一个参数是指object类型
    u是指用户表
      

  5.   


    USE tempdb
    GO
    IF OBJECT_ID(N'tempdb.#tempTable',N'U') IS NOT NULL
      drop table #tempTable;
    go
    USE Application_db_S
    go SET NOCOUNT ONSELECT * INTO tempdb.#tempTable from dbo.MDTEN;declare @w_Val intselect @w_Val = count(*) from #tempTable;print @w_Val
    go
    这样写就好了,临时表的话只能存在于tempdb库吗?不能生成与一般的库玛?还有就是我上面问的问题~顺便问一下,(N'#tempTable',N'U')的N是什么意思? 
    还有,object_id为一个参数的时候我明白,两个参数的时候是什么意思?谢谢