sql-server-2008
  • excel-vba
  • sql-drop
  • 2012-03-12 2 views 1 likes 
    1

    Я хочу, чтобы удалить таблицу # Темп при запуске, то макрос, это правильно использовать:Excel VBA - Exec сценарий уронить временную таблицу

    tempdb..sysobjects 
    

    Сценарий:

    sScript = sScript + "IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE xtype = 'U' AND name like '#vl_enrolledByDate%') " & vbCrLf 
    sScript = sScript + "BEGIN " & vbCrLf 
    sScript = sScript + "DROP TABLE #vl_enrolledByDate " & vbCrLf 
    sScript = sScript + "End " & vbCrLf 
    
    iVal = execute_sql_command(sServer, sDatabase, sScript) 
    

    sServer, например. например SQLPROD01 и sDatabase. is scratchdb, но я читал, что #tables хранятся в базе данных tempdb, является ли это причиной того, что таблица не существует?

    Так что, когда я запускаю макрос возвращает следующее сообщение об ошибке:

    Run-time error '-2147217865 (80040e37)': 
    
    Cannot drop the table '#vl_enrolledByDate', because it does not exist 
    in the system cataglog. 
    

    Но если я создать не # таблицу и использовать только

    (SELECT * FROM sysobjects WHERE xtype = 'U' AND name like 'vl_enrolledByDate%') 
    

    это нормально.

    ответ

    0

    Я всегда условно уронить временные таблицы, как это:

    if OBJECT_ID('tempdb..#temp') is not null 
    drop table #temp 
    
    Смежные вопросы