OK、Sybase (12.5.4) では、テーブルが既に存在する場合、次のようにしてテーブルを削除できます。
IF EXISTS (
SELECT 1
FROM sysobjects
WHERE name = 'a_table'
AND type = 'U'
)
DROP TABLE a_table
GO
しかし、テーブルの作成で同じことをしようとすると、テーブルが既に存在するという警告が常に表示されます。これは、先に進んでテーブルを作成しようとし、条件ステートメントを無視したためです。次のステートメントを 2 回実行してみてください。言いたいことがわかります。
IF NOT EXISTS (
SELECT 1
FROM sysobjects
WHERE name = 'a_table'
AND type = 'U'
)
CREATE TABLE a_table (
col1 int not null,
col2 int null
)
GO
上記を実行すると、次のエラーが発生します。
SQL Server エラー (localhost) エラー: 2714 行: 7 メッセージ: データベースには、'a_table' という名前のオブジェクトが既に存在します。
それはどうしたの?