문제

나는 이것이 비슷하다는 것을 안다 이 질문, 그러나 C#의 WinForms 프로젝트와 함께 SQL Server CE 3.5를 사용하고 있습니다. 테이블이 존재하는지 어떻게 결정할 수 있습니까? 나는 알고있다 IF 그러나 키워드는 지원되지 않습니다 EXISTS 이다. information_schema가 CE에 쿼리 할 수있는 곳에 존재합니까? 감사.

도움이 되었습니까?

해결책

예, 존재합니다.

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'

다른 팁

대안으로 테이블을 쿼리하고 예외를 포착 할 수 있습니다. 예외가 있으면 테이블을 찾을 수 없었습니다. 그렇지 않으면 테이블이 존재합니다.

SELECT TOP 1 1 FROM TableName;

약간의 간단한 성능 테스트는 information_schema에 대한 쿼리보다 더 나은 결과를 얻었습니다. information_schema에 대한 쿼리를 클리너로 간주 할 것입니다.

데이터베이스 도우미 사용 :

var db = Database.Open("MyDatabase");
var sql = @"SELECT Count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'MyTable'"
var count = db.QueryValue(sql);
if(count.Equals(1)){
    //table exists
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top