2011-05-01 5 views
2

C# 및 액세스 db를 사용합니다.Access에서 테이블을 삭제하는 방법

drop table if exists t_table 

그래서 당신이 액세스에 대한 유사한 문을 알고 :
아래와 같이 테이블을 삭제하기위한 MySQL의에서 문이있다?

+0

[이 질문]에 대한 답변으로 게시 한 SQL은 (http://stackoverflow.com/questions/2985513/check-if-access-table-exists) 당신이 필요로하는 무엇을해야합니까 –

답변

2


Access에서 이와 같은 SQL 구문에 대해 잘 모릅니다.
당신은 howewer, 다음 중 하나를 수행 할 수있는 경우, 검사 예외를 캐치하지 않고 테이블을 drope하는

  • 시도를 (그것은 어떤 테이블이 발견되지 않은 경우 특정 코드가 있어야합니다) 그것을 무시. 테이블이 존재하는 경우

  • 봅니다 (그러나 ADO으로 기본적으로 아무런 권한이 없다) 액세스 숨겨진 테이블으로 MSysObjects에서 확인

  • 를 사용하여 아래와 같은 코드 (나쁜 일 : 삭제 레코드를 반환하지 않는 테이블) 영향 :

    using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.JET.OLEDB.4.0;data source=c:\myDatabase.mdb")) 
    { 
        conn.Open(); 
    
        string tableToDelete = "myTable"; //table name 
        bool tableExists = false; 
    
        DataTable dt = conn.GetSchema("tables"); 
    
        foreach (DataRow row in dt.Rows) 
        { 
         if (row["TABLE_NAME"].ToString() == tableToDelete) 
         { 
          tableExists = true; 
          break; 
         } 
        } 
    
        if (tableExists) 
        { 
         using (OleDbCommand cmd = new OleDbCommand(string.Format("DROP TABLE {0}", tableToDelete), conn)) 
         { 
          cmd.ExecuteNonQuery(); 
          MessageBox.Show("Table deleted"); 
         } 
        } 
        else 
         MessageBox.Show(string.Format("Table {0} not exists", tableToDelete)); 
    } 
    
관련 문제