0

同じ名前のユーザーと DB スキーマが必要です。以下のスクリプトの実行

CREATE DATABASE db1
GO
EXECUTE sp_addlogin @loginame = 'abc',
                    @passwd   = '123456789',
                    @defdb    = 'db1'
GO
USE db1
GO
EXECUTE sp_grantdbaccess @loginame   = 'abc', 
                         @name_in_db = 'abc'
GO
CREATE SCHEMA abc
GO

エラーが表示されます:

メッセージ 2714: データベースには、'abc' という名前のオブジェクトが既に存在します。

別の名前を使用せずにこれを処理する方法はありますか?

4

1 に答える 1

2

これには sp_ プロシージャを使用しないことをお勧めします。データベースにユーザーとして追加するまで、データベースをデフォルトにしません。

CREATE DATABASE db1;
GO
CREATE LOGIN abc WITH PASSWORD = '123456789';
GO
USE db1;
GO
CREATE USER abc FROM LOGIN abc;
GO
ALTER LOGIN abc WITH DEFAULT_DATABASE = db1;
GO
CREATE SCHEMA abc;
GO

-- if you want them to own the schema:
ALTER AUTHORIZATION ON schema::abc TO abc;

-- if you just want abc to be their default schema:
ALTER USER abc WITH DEFAULT_SCHEMA = abc;
GO
于 2012-05-29T15:21:43.817 に答える