バックアップからリストアするときに表示される
webなどでは
などがあるが、それでも解消できなかった場合、以下のSQLでリストアできた
RESTORE DATABASE kingdb -- 復元対象DB FROM DISK = 'D:/DATA/kingdb.bak' WITH REPLACE, MOVE 'test1' TO 'D:/DATA/test1.mdf', -- 復元対象DB名を変更する可能性がある MOVE 'test1_log' TO 'D:/DATA/test1_log.ldf' -- 復元対象DB名を変更する可能性がある
これは、いずれかのスキーマを所有しているため削除できませんという意味です。
等の原因が考えられます。解決法としては以下のようなものになります
-- いったん、ユーザーと、そのユーザー名と同名のスキーマを明示的に関連付け、 ALTER USER ユーザ名 WITH DEFAULT_SCHEMA = ユーザ名 -- そのスキーマを明示的に削除してから、 DROP SCHEMA ユーザ名 -- ユーザーを削除。 DROP USER ユーザ名 GO
SQL Server 2012以前では、SQL Serverのデータベースエンジンのインスタンス間でデータベースを移行または復旧すると、データベースユーザーに関連付けられたサーバログインは、移行先/復旧先のインスタンスに自動でコピーされない。
そのため、孤立したユーザーが生まれ、移行直後のデータベースは機能しない。