2016-04-06 6 views
0

ich versuche, eine Datenbank mit smo zu kopieren, aber ich habe den Fehler:Kopieren Datenbank mit smo Raise Fehler: "Benutzer ist bereits vorhanden"

"User, group, or role '%' already exists in the current database"

Mein Code:

var conn = GetServerConnection(); 
var server = new Server(conn); 

var sourceDb = server.Databases[sourceDatabase.Name]; 

var destinationDbName = GetNameForDatabase(dbName); 

var destinationDb = new Database(server, destinationDbName); 
destinationDb.Create(); 

var transfer = new Transfer(sourceDb) { 
    DestinationDatabase = destinationDbName, 
    DestinationServer = server.Name, 
    DestinationLoginSecure = true, 
    CopySchema = true, 
    CopyAllTables = true, 
    CopyData = true, 
    CopyAllUsers = false, 
}; 

transfer.Options.WithDependencies = true; 
transfer.Options.ContinueScriptingOnError = true; 
transfer.TransferData(); 

Vielen Dank im Voraus für irgendwelche Vorschläge!

+0

Versuchen Sie, die Eigenschaften "CopyAllLogins" und/oder "CopyAllRoles" zu deaktivieren. – Dennis

+0

Ich habe den folgenden Code hinzugefügt: CopyAllRoles = false, CopyAllLogins = false, aber ich bekomme den gleichen Fehler – Sergiu

Antwort

0

Haben Sie irgendwelche Zuordnungen vom Datenbankserver zur Quelldatenbank? Versuchen Sie, diese zu entfernen, bevor Sie mit dem Kopieren beginnen.

Ich habe die Datenbank mit dem Assistenten zum Kopieren von Datenbanken kopiert, um eine Testdatenbank auf demselben Server zu erstellen, und habe diesen Fehler erhalten. Das Problem bestand darin, dass in der Quelldatenbank eine Benutzeranmeldung für diese Datenbank zugeordnet war. Irgendwo in der Mischung von allem versuchte der Datenbank-Assistent, einen Benutzer der Zieldatenbank über eine direkte Kopie hinzuzufügen, aber auch den gleichen Benutzer durch das Mapping hinzuzufügen. Der Trick bestand darin, die Zuordnung der Quellendatenbank zu entfernen, dann die Datenbank zu kopieren und dann das Mapping zurück zur Quelle hinzuzufügen (es wurde bereits am Zielort hinzugefügt).

Verwandte Themen