6

名前で SQL テーブルを検索しようとしていますが、存在する場合は削除します。これはすべて、SMO を使用して C# で行う必要があります。

もう少し複雑にするために、テーブルには「dbo」以外のスキーマもあります。

最終的に、テーブルは SMO を介して再作成されます (私はこれを機能させています) が、再作成する前にテーブルが存在しないことを確認する必要があります。

私が見たすべての例は、すべて同じコンテキストでテーブルを作成してから削除しているようです。私の場合、テーブルは以前のセッションで作成され、入力されています。

4

4 に答える 4

1

DROP TABLE ステートメントを try/catch ブロックでラップして、発生したエラーを破棄することはできませんか?

とにかく、テーブルが存在するかどうかを判断するためのSQLは次のとおりです。

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TableName]') AND type in (N'U'))
于 2009-05-29T22:14:52.743 に答える
0

最初の質問は、なぜドロップして DDL で再作成できないのかということです。

そしてあなたの質問への答えとして:

Table table = new Table(myDatabase, "MyTable", "MySchema");
于 2009-05-29T22:11:48.663 に答える