2016-04-04 28 views
1

削除する必要がある古いスキーマがあります。問題は、名前に特殊文字\があることです(私はスキーマ名に特殊文字のファンがいないと信じています)。私はCOMPANY\user1は、スキーマの名前です。次SQL Server:特殊文字を含むスキーマを削除する

DROP SCHEMA databasename."COMPANY\user1" 

のようなコマンドを試してみました。

しかし、私は次のよう

SQL Error: Incorrect syntax near '.'.`

のようなエラーが発生して結局私は、スキーマの内部テーブルのすべてを落としてきたので、私は残りの任意のオブジェクトがあるはずはないと思います。私は次のコマンドでテーブルを落とすことに成功しました

DROP TABLE databasename."COMPANY\user1".persontable; 

私のスキーマを削除しようとして失敗した理由は何ですか?私はそれが文法に欠けていることが明らかであると確信しています。

+1

今すぐテストすることはできませんが、データベースを最初に使用してから、そのスキーマを削除する必要はありませんか? 'use databasename; drop schema [COMPANY \ user1]' ... – ssarabando

+0

@ssarabandoのように、正しくデータベースを選択しませんでした。ゴードン・リノフの答えに対する私のコメントを見てください。投稿したSQLがうまくいかないことに私は驚いています。私はそれがいくつかの反復があると確信しています。おそらくあなたのクライアントのいくつかの奇妙なものが – OrwellHindenberg

+0

でしょう。それがうれしかった。 – ssarabando

答えて

4

角かっこで試しましたか? drop schemaは(構文in the documentationによって暗示の一種として)データベースを受け入れていないので、

drop schema databasename.[COMPANY\user1] 

実は、これは、動作しません。

drop schema [COMPANY\user1] 

これは私のために異常な文字を持つ名前で動作します。

+1

データベースの中に入ることはトリックでした! Oracle SQLDeveloper 2ツールを使用するには、dbを右クリックして「デフォルト・データベースを選択」オプションを選択します。 – OrwellHindenberg

関連する問題