私は異なるスキーマを指定しても、デフォルトのスキーマdboでテーブルが作成されるのはなぜですか?
CREATE TABLE xxx.MyTable
のようにSQL Server 2005のSSMS(バージョン9.00.4035.00)でSQLスクリプトを実行する場合は、スキーマxxxは存在しないものの、テーブルがdbo.MyTableとして作成されます!エラーメッセージは表示されません。
私は
何が問題になっています(サーバーの役割のシステム管理者を持つWindowsユーザーとSQLユーザーでテスト済み)すべての権限としてスクリプトを実行するために使用しているユーザー? )
1テーブルやその他のオブジェクトを作成する必要がデータベースへのDBO権限を持つSQLログインを作成します。
をチェックしますSCHEMA_ID( 'dbo')、SCHEMA_ID( 'xxx') 'を選択しますか? 2つの異なる数字、同じ数字、1つまたは両方のためのヌルを与えますか? –
それは異なった数を与える。 xxxスキーマは完全にokです。私はdboテーブルを作成してxxxに変更することもできます。しかし、私はそれを直接作成することはできません! –
私が発見した別のこと。 dbo.MyTableが(xxx.MyTableの代わりに)作成されたときに、同じことをもう一度やり直すと、xxx.MyTableは既に存在するので作成できないというエラーメッセージが表示されます。 –