Wybrano odpowiedź a inne są dobre. Chcę tylko dać więcej wyjaśnienia w języku SQL. W tym samym rozwiązaniu nie ma (prawidłowego) właściciela bazy danych.
Konto właściciela bazy danych dbo
, które jest wymienione w błędzie, jest zawsze tworzone z bazą danych. Wydaje się dziwne, że nie istnieje, ale możesz sprawdzić za pomocą dwóch wyborów (lub jednego, ale trzymajmy to prosto).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
który pokazuje SID dbo
użytkownika w bazie db_name i
SELECT [name],[sid]
FROM [sys].[syslogins]
aby pokazać wszystkie loginy (i ich identyfikatory SID) dla tej instancji serwera SQL. Zauważ, że nie zapisał żadnego prefiksu db_name, ponieważ każda baza danych zawiera te same informacje w tym widoku.
W przypadku błędu powyżej, nie będzie logowania z identyfikatorem SID przypisanym do użytkownika dbo bazy danych.
Jak wyjaśniono powyżej, zwykle dzieje się podczas przywracania bazy danych z innego komputera (gdzie baza danych i użytkownik dbo zostały utworzone przez różne logowania). Możesz to naprawić, zmieniając własność na istniejący login.
Prawdopodobnie jest to pytanie na miejscu DBA, ale czy to pomoże, jeśli dać więcej informacji o tym, kiedy pojawi się błąd, to znaczy co komenda nie może być wykonana.Istnieje wiele wyników wyszukiwania tego błędu, w tym [to pytanie] (http://stackoverflow.com/questions/2723061/sql-server-2008-product-failing-z-process-could-not-execute-sp- replcmds); czy spojrzałeś na nie i czy w jakikolwiek sposób pasują one do twojej sytuacji i konfiguracji? – Pondlife