3

SQL Server 2008R2 で大きな奇妙なエラーが発生しました。

私は次の声明を持っています:

DROP TABLE TEST_
-- here it says that this table doesn't exists

GO    

CREATE TABLE TEST_(
    [ID_] [int] IDENTITY(1,1) NOT NULL,
    [ITEM_] NVARCHAR(255) NOT NULL,
    CONSTRAINT [TEST_] PRIMARY KEY CLUSTERED 
(
    [ID_] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

-- here says that table already exists

コメントに従ってください。この事実はあなたにも起こりましたか?

テーブルを再作成できません。私は何をしなければなりませんか?

PS: 同じデータベースが選択されています

4

4 に答える 4

4

混乱していると思いますが、「TEST_」が既に存在すると不平を言っていますが、おそらくそれは制約「test_」が既に存在することを意味します。制約に別の名前を使用すると、問題なく機能します。

于 2013-10-14T15:08:34.633 に答える
1

次のエラーのため、クエリを実行できません:

メッセージ 3701、レベル 11、状態 5、行 1
テーブル 'TEST ' を削除できません。テーブルが存在しないか、権限がないためです
。_ メッセージ 102、レベル 15、状態 1、行 5
'(' 付近の構文が正しくありません。
Msg 319, Level 15, State 1, Line 7
Incorrect syntax near the keyword 'with'. このステートメントが共通テーブル式、xmlnamespaces 句、または変更追跡コンテキスト句である場合、前のステートメントはセミコロンで終了する必要があります。

しかし、クエリを次のように変更すると:
CREATE TABLE TEST_(
[ID_] [int] IDENTITY(1,1) NOT NULL,
[ITEM_] NVARCHAR(255) NOT NULL
) ON [PRIMARY]
正常に動作します:
コマンドが完了しました成功しました。

于 2013-10-14T15:13:14.537 に答える
0

常にオブジェクトの存在を確認してからドロップします。これでは、テーブルが存在するかどうかに関係なく、エラーが返されることはありませんが、存在する場合はテーブルがドロップされます...

IF OBJECT_ID('dbo.TEST_', 'U') IS NOT NULL
DROP TABLE dbo.TEST_
于 2013-10-14T15:16:19.257 に答える