2

T-SQL (SQL Server 2008) の入門コースを受講しています。コースウェアやその他のオンライン リソースで、次のパターンに気付きました。

テーブルが既に存在する場合にテーブルを作成するとエラーが発生し、最初にそのテーブルを削除してから再作成すると、この問題が解決することを知っています (つまり、スクリプトが再実行される場合)。テーブルが存在するかどうかを最初にテストし、存在する場合は作成プロセスをスキップする [サンプル 2] 代わりに、テーブルを削除してから再作成する [サンプル 1] 理由は何ですか?

サンプル 1:

IF OBJECT_ID('myTable') IS NOT NULL
    DROP TABLE myTable
GO
CREATE TABLE myTable (number INT PRIMARY KEY)
GO

サンプル 2:

IF OBJECT_ID('myTable') IS NULL
    CREATE TABLE myTable (number INT PRIMARY KEY)
GO
4

1 に答える 1

6

既に存在するテーブルには、必要なフィールドが含まれていない場合があります。したがって、2 番目の例では、テーブルが既に存在していると思いますが、それはあなたが望むものではありません。

常に削除して再作成すると、指定したすべてのフィールドがテーブルにあることがわかります。

于 2013-03-28T22:46:21.963 に答える