18

これがこの質問に似ていることは知っていますが、C# の WinForms プロジェクトで SQL Server CE 3.5 を使用しています。テーブルが存在するかどうかを確認するにはどうすればよいですか? IFキーワードがサポートされていないことは知っていますが、サポートされていEXISTSます。information_schema は CE に存在し、それに対してクエリを実行できますか? ありがとう。

4

3 に答える 3

36

はい、存在します:

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'TableName'
于 2009-01-10T18:51:21.567 に答える
1

別の方法として、テーブルをクエリして、スローされた例外をキャッチできます。例外がある場合、テーブルは見つかりませんでした。それ以外の場合、テーブルは存在します。

SELECT TOP 1 1 FROM TableName;

少し単純なパフォーマンス テストは、INFORMATION_SCHEMA に対するクエリよりも優れた結果を示しました。INFORMATION_SCHEMA に対するクエリはよりクリーンであると考えますが。

于 2013-02-24T00:34:03.790 に答える
0

データベース ヘルパーの使用:

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
}
于 2014-10-08T07:08:01.503 に答える