選ばれた答えと他のいくつかはすべて良いです。SQLについてより純粋に説明したいだけです。(有効な)データベース所有者がいないのと同じソリューションになります。
dbo
エラーで言及されているデータベース所有者アカウントは、常にデータベースで作成されます。だから、それが存在しないのは奇妙に思えますが、2つの選択で確認できます(または1つだけですが、単純にしておくことにしましょう)。
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
これはdbo
、DB_NAMEデータベース内のユーザーのSIDを示し、
SELECT [name],[sid]
FROM [sys].[syslogins]
このSQLサーバーインスタンスのすべてのログイン(およびそのSID)を表示します。すべてのデータベースのビューに同じ情報が含まれているため、db_name接頭辞は書き込まれていません。
したがって、上記のエラーの場合はありませんデータベースのdboユーザーに割り当てられているSIDでのログイン。
上記で説明したように、これは通常、別のコンピューターからデータベースを復元するときに発生します(データベースとdboユーザーは別のログインで作成されました)。また、所有権を既存のログインに変更することで修正できます。