Wie kann ich in einer anderen Datenbank in SQL Server wiederherstellen?

224

Ich habe ein Backup von Database1 von vor einer Woche. Die Sicherung erfolgt wöchentlich im Scheduler und ich erhalte eine .bakDatei. Jetzt möchte ich mit einigen Daten herumspielen, damit ich sie in einer anderen Datenbank wiederherstellen kann - Datenbank2 .

Ich habe diese Frage gesehen: Stellen Sie die SQL Server-Datenbank auf demselben PC mit einem anderen Namen wieder her. Der empfohlene Schritt besteht darin, die ursprüngliche Datenbank umzubenennen. Diese Option ist jedoch nicht verfügbar, da ich mich auf dem Produktionsserver befinde und dies nicht wirklich tun kann.

Gibt es eine andere Möglichkeit, es wiederherzustellen Database2, oder zumindest, wie kann ich die Daten dieser .bak-Datei durchsuchen?

Vielen Dank.

ps: Die zweite Antwort über den obigen Link sah vielversprechend aus, endet aber immer wieder mit einem Fehler:

Die Wiederherstellungsdateiliste wird abnormal beendet

LocustHorde
quelle

Antworten:

303

Sie können eine neue Datenbank erstellen und dann den "Wiederherstellungsassistenten" verwenden, der die Option "Überschreiben" aktiviert.

Inhalt anzeigen;

RESTORE FILELISTONLY FROM DISK='c:\your.bak'

Beachten Sie die logischen Namen der .mdf & .ldf aus den Ergebnissen.

RESTORE DATABASE MyTempCopy FROM DISK='c:\your.bak'
WITH 
   MOVE 'LogicalNameForTheMDF' TO 'c:\MyTempCopy.mdf',
   MOVE 'LogicalNameForTheLDF' TO 'c:\MyTempCopy_log.ldf'

So erstellen Sie die Datenbank MyTempCopymit dem Inhalt von your.bak.

Beispiel (stellt eine Sicherung einer Datenbank mit dem Namen 'creditline' in 'MyTempCopy' wieder her;

RESTORE FILELISTONLY FROM DISK='e:\mssql\backup\creditline.bak'

>LogicalName
>--------------
>CreditLine
>CreditLine_log

RESTORE DATABASE MyTempCopy FROM DISK='e:\mssql\backup\creditline.bak'
WITH 
   MOVE 'CreditLine' TO 'e:\mssql\MyTempCopy.mdf',
   MOVE 'CreditLine_log' TO 'e:\mssql\MyTempCopy_log.ldf'

>RESTORE DATABASE successfully processed 186 pages in 0.010 seconds (144.970 MB/sec).
Alex K.
quelle
5
Hallo, mir scheint etwas zu fehlen, es wirft immer wieder den Fehler auf backkup set holds a backup of a database other than existing "tmp" database, den ich verstehe. Sollte der toAusdruck der tatsächliche physische Pfad von sein MyTempCopy?
LocustHorde
Seltsamerweise toist dies der Datenbank- und Protokollspeicherort für die neue Datenbank. Aktualisierungsbeispiel oben
Alex K.
51
Für alle anderen, die dies versuchen, erstellen Sie die MyTempCopy nicht, sie wird während der Wiederherstellung erstellt.
Blazes
3
funktionierte nur mit den Optionen REPLACE, RECOVERY, in meinem Fall (SQL2012) cr. dba.stackexchange.com/questions/51489/…
dc2009
7
Sollte REPLACE, RECOVERY verwenden, um dies herauszufinden. Das wäre also: RESTORE DATABASE MyTempCopy FROM DISK='e:\mssql\backup\creditline.bak' WITH REPLACE, RECOVERY, MOVE 'CreditLine' TO 'e:\mssql\MyTempCopy.mdf', MOVE 'CreditLine_log' TO 'e:\mssql\MyTempCopy_log.ldf'
Raihan
67

SQL Server 2008 R2:

Führen Sie für eine vorhandene Datenbank, die Sie wiederherstellen möchten, die folgenden Schritte aus: einer Sicherung einer anderen Datenbank aus:

  1. Klicken Sie in der Symbolleiste auf die Schaltfläche Aktivitätsmonitor.
  2. Klicken Sie auf Prozesse. Filtern Sie nach der Datenbank, die Sie wiederherstellen möchten. Beenden Sie alle laufenden Prozesse, indem Sie mit der rechten Maustaste auf jeden Prozess klicken und "Prozess beenden" auswählen.
  3. Klicken Sie mit der rechten Maustaste auf die Datenbank, die Sie wiederherstellen möchten, und wählen Sie Aufgaben -> Wiederherstellen -> Aus Datenbank.
  4. Aktivieren Sie das Optionsfeld "Vom Gerät:".
  5. Wählen Sie ... und wählen Sie die Sicherungsdatei der anderen Datenbank aus, aus der Sie wiederherstellen möchten.
  6. Wählen Sie den Sicherungssatz aus, aus dem Sie wiederherstellen möchten, indem Sie das Kontrollkästchen links neben dem Sicherungssatz aktivieren.
  7. Optionen wählen".
  8. Wählen Sie Vorhandene Datenbank überschreiben (MIT ERSETZEN).
  9. Wichtig: Ändern Sie den Dateinamen der Zeile "Wiederherstellen als" in den Dateinamen der vorhandenen Datenbank, die Sie überschreiben möchten, oder geben Sie ihr einfach einen neuen Namen.
  10. Machen Sie dasselbe mit dem Dateinamen der Protokolldatei.
  11. Stellen Sie im Aktivitätsüberwachungsbildschirm sicher, dass keine neuen Prozesse erzeugt wurden. Wenn sie es wären, töte sie.
  12. OK klicken.
Daniel Byrne
quelle
12
MS SQL Server 2010?
Mark
3
Es gibt einige Screenshots hier stackoverflow.com/questions/3829271/…
Tomas Kubes
Obwohl ich ein Programmierer bin, würde ich diesen Assistenten lieber verwenden. Einfacher und sauberer.
v1n1akabozo
1
Schlüsselschritt war # 8 für mich. Danke Daniel.
jbooker
SQL 2014 .. Schritt 6a: Ändern Sie die Zieldatenbank in die Datenbank, in der Sie wiederherstellen möchten. Schritt 9 und 10: Dies sollte durch Ändern der Zieldatenbank für Sie erledigt werden. Überprüfen Sie dies jedoch noch einmal, indem Sie zu Dateien gehen und die Dateinamen überprüfen, wie im ursprünglichen Schritt 9 und 10 beschrieben.
JzInqXc9Dg
49

Für SQL Server 2012 mit SQL Server Management Studio empfand ich diese Schritte auf der Microsoft-Seite als nützlich, um eine andere Datenbankdatei und einen anderen Namen wiederherzustellen: (Ref: http://technet.microsoft.com/en-us/library/ms175510 .aspx )

Beachten Sie, dass die Schritte 4 und 7 wichtig sind, um die vorhandene Datenbank nicht zu überschreiben.


So stellen Sie eine Datenbank an einem neuen Speicherort wieder her und benennen Sie die Datenbank optional um

  1. Stellen Sie eine Verbindung zur entsprechenden Instanz des SQL Server-Datenbankmoduls her, und klicken Sie dann im Objekt-Explorer auf den Servernamen, um die Serverstruktur zu erweitern.
  2. Klicken Sie mit der rechten Maustaste auf Datenbanken , und klicken Sie dann auf Datenbank wiederherstellen . Das Dialogfeld Datenbank wiederherstellen wird geöffnet.
  3. Verwenden Sie auf der Seite Allgemein den Abschnitt Quelle , um die Quelle und den Speicherort der wiederherzustellenden Sicherungssätze anzugeben. Wählen Sie eine der folgenden Optionen:

    • Datenbank

      • Wählen Sie die wiederherzustellende Datenbank aus der Dropdown-Liste aus. Die Liste enthält nur Datenbanken, die gemäß dem MSDB- Sicherungsverlauf gesichert wurden .

        Hinweis Wenn die Sicherung von einem anderen Server erstellt wird, verfügt der Zielserver nicht über die Sicherungsverlaufsinformationen für die angegebene Datenbank. Wählen Sie in diesem Fall Gerät aus, um die wiederherzustellende Datei oder das wiederherzustellende Gerät manuell anzugeben.

    • Gerät

      • Klicken Sie auf die Schaltfläche Durchsuchen (...), um das Dialogfeld Sicherungsgeräte auswählen zu öffnen . In dem Sicherungsmedientyp Feld, wählen Sie eine der aufgelisteten Gerätetypen. Klicken Sie auf Hinzufügen, um ein oder mehrere Geräte für das Feld Sicherungsmedien auszuwählen . Klicken Sie nach dem Hinzufügen der gewünschten Geräte zum Listenfeld Sicherungsmedien auf OK , um zur Seite Allgemein zurückzukehren . Im Quelle: Gerät: Datenbank - Listenfeld, wählen Sie den Namen der Datenbank , die wiederhergestellt werden soll.

        Hinweis Diese Liste ist nur verfügbar, wenn Gerät ausgewählt ist. Es sind nur Datenbanken verfügbar, die Sicherungen auf dem ausgewählten Gerät haben.

  4. Im Abschnitt Ziel wird das Feld Datenbank automatisch mit dem Namen der wiederherzustellenden Datenbank gefüllt. Geben Sie den neuen Namen in das Feld Datenbank ein, um den Namen der Datenbank zu ändern .
  5. In dem für die Wiederherstellung Feld den Standard als verlassen , um die letzten Sicherung genommen oder auf klicken Timeline die dem Zugriff auf Backup - Zeitleiste Dialogfeld manuell einen Zeitpunkt wählen Sie die Wiederherstellungsaktion zu stoppen.
  6. Wählen Sie im Raster "Sicherungssätze zum Wiederherstellen" die wiederherzustellenden Sicherungen aus. In diesem Raster werden die für den angegebenen Speicherort verfügbaren Sicherungen angezeigt. Standardmäßig wird ein Wiederherstellungsplan vorgeschlagen. Um den vorgeschlagenen Wiederherstellungsplan zu überschreiben, können Sie die Auswahl im Raster ändern. Sicherungen, die von der Wiederherstellung einer früheren Sicherung abhängen, werden automatisch abgewählt, wenn die frühere Sicherung abgewählt wird.
  7. Um den neuen Speicherort der Datenbankdateien anzugeben, wählen Sie die Seite Dateien aus und klicken Sie dann auf Alle Dateien in Ordner verschieben . Geben Sie einen neuen Speicherort für den Ordner Datendatei und den Ordner Protokolldatei an . Alternativ können Sie dieselben Ordner behalten und einfach die Datenbank- und Protokolldateinamen umbenennen.
Fäulnis
quelle
3
Dieser wirkt wie ein Zauber; Besonderer Dank für die Schritte 4 und 7
Anatoly Yakimchuk
Außerdem musste ich auf die Registerkarte "Optionen" gehen und "Vorhandene Datenbank überschreiben (MIT ERSETZEN) überschreiben" ... Dann funktionierte es.
John Kurtz
1
@ JohnKurtz Sie sollten das nicht tun müssen, wenn Sie in einer neuen Datenbank wiederherstellen.
Fäulnis
Ich hatte bereits eine leere Datenbank zum Wiederherstellen erstellt. Das muss der Unterschied sein.
John Kurtz
1
Bestätigt, dass es wie beschrieben funktioniert, wenn Sie in Schritt 4 den Namen einer nicht vorhandenen Datenbank eingeben. Bestätigt, dass Sie bei Auswahl einer anderen bereits vorhandenen Datenbank das Kontrollkästchen "Vorhandene Datenbank überschreiben (MIT ERSETZEN) überschreiben" aktivieren müssen. Registerkarte "Optionen". Danke für Ihre Geduld!
John Kurtz
34

Tatsächlich ist es nicht erforderlich, die Datenbank in nativen SQL Server-Begriffen wiederherzustellen, da Sie "mit einigen Daten herumspielen" und "die Daten dieser .bak-Datei durchsuchen" möchten.

Sie können ApexSQL Restore verwenden - ein SQL Server-Tool, das sowohl native als auch nativ komprimierte SQL-Datenbanksicherungen und Transaktionsprotokollsicherungen als Live-Datenbanken anfügt und über SQL Server Management Studio, Visual Studio oder ein anderes Drittanbieter-Tool zugänglich ist. Es ermöglicht das Anhängen einzelner oder mehrerer vollständiger, differenzieller und Transaktionsprotokollsicherungen

Darüber hinaus denke ich, dass Sie die Arbeit erledigen können, während sich das Tool im voll funktionsfähigen Testmodus befindet (14 Tage).

Haftungsausschluss: Ich arbeite als Product Support Engineer bei ApexSQL

Ivan Stankovic
quelle
9

Hier ist, was ich aus verschiedenen Beiträgen zusammengeschustert habe, um eine Datenbank mithilfe von Sicherung und Wiederherstellung mit Verschieben zu kopieren, um den physischen Speicherort zu reparieren, und zusätzlicher SQL, um den logischen Namen zu korrigieren.

/**
 * Creates (or resets) a Database to a copy of the template database using backup and restore.
 *
 * Usage: Update the @NewDatabase value to the database name to create or reset.
 */

DECLARE @NewDatabase SYSNAME = 'new_db';

-- Set up
USE tempdb;

DECLARE @TemplateBackups SYSNAME = 'TemplateBackups';
DECLARE @TemplateDatabase SYSNAME = 'template_db';
DECLARE @TemplateDatabaseLog SYSNAME = @TemplateDatabase + '_log';

-- Create a backup of the template database
BACKUP DATABASE @TemplateDatabase TO DISK = @TemplateBackups WITH CHECKSUM, COPY_ONLY, FORMAT, INIT, STATS = 100;

-- Get the backup file list as a table variable
DECLARE @BackupFiles TABLE(LogicalName nvarchar(128),PhysicalName nvarchar(260),Type char(1),FileGroupName nvarchar(128),Size numeric(20,0),MaxSize numeric(20,0),FileId tinyint,CreateLSN numeric(25,0),DropLSN numeric(25, 0),UniqueID uniqueidentifier,ReadOnlyLSN numeric(25,0),ReadWriteLSN numeric(25,0),BackupSizeInBytes bigint,SourceBlockSize int,FileGroupId int,LogGroupGUID uniqueidentifier,DifferentialBaseLSN numeric(25,0),DifferentialBaseGUID uniqueidentifier,IsReadOnly bit,IsPresent bit,TDEThumbprint varbinary(32));
INSERT @BackupFiles EXEC('RESTORE FILELISTONLY FROM DISK = ''' + @TemplateBackups + '''');

-- Create  the backup file list as a table variable
DECLARE @NewDatabaseData VARCHAR(MAX);
DECLARE @NewDatabaseLog VARCHAR(MAX);

SELECT @NewDatabaseData = PhysicalName FROM @BackupFiles WHERE Type = 'D';
SELECT @NewDatabaseLog = PhysicalName FROM @BackupFiles WHERE Type = 'L';

SET @NewDatabaseData = REPLACE(@NewDatabaseData, @TemplateDatabase, @NewDatabase);
SET @NewDatabaseLog = REPLACE(@NewDatabaseLog, @TemplateDatabase, @NewDatabase);

RESTORE DATABASE @NewDatabase FROM DISK = @TemplateBackups WITH CHECKSUM, RECOVERY, REPLACE, STATS = 100,
   MOVE @TemplateDatabase TO @NewDatabaseData,
   MOVE @TemplateDatabaseLog TO @NewDatabaseLog;

-- Change Logical File Name
DECLARE @SQL_SCRIPT VARCHAR(MAX)='
    ALTER DATABASE [{NewDatabase}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    ALTER DATABASE [{NewDatabase}] MODIFY FILE (NAME=N''{TemplateDatabase}'', NEWNAME=N''{NewDatabase}'');
    ALTER DATABASE [{NewDatabase}] MODIFY FILE (NAME=N''{TemplateDatabase}_log'', NEWNAME=N''{NewDatabase}_log'');
    ALTER DATABASE [{NewDatabase}] SET MULTI_USER WITH ROLLBACK IMMEDIATE;
    SELECT name AS logical_name, physical_name FROM SYS.MASTER_FILES WHERE database_id = DB_ID(N''{NewDatabase}'');
';
SET @SQL_SCRIPT = REPLACE(@SQL_SCRIPT, '{TemplateDatabase}', @TemplateDatabase);
SET @SQL_SCRIPT = REPLACE(@SQL_SCRIPT, '{NewDatabase}', @NewDatabase);
EXECUTE (@SQL_SCRIPT);
Nathan Niesen
quelle
Hallo NateN, ich möchte meine .bak-Datei (die in meinem lokalen Computer d: Laufwerkspfad vorhanden ist) in einer anderen Datenbank wiederherstellen. Ich habe diesen Code zum Testen von Einheiten ausprobiert, aber es wird ein Fehler ausgegeben. "Exklusiver Zugriff konnte nicht erhalten werden, da die Datenbank wird verwendet. "Datenbank kann nicht wiederhergestellt werden. Können Sie mir bitte helfen, wie es geht?
Victor Athoti.
Die Datenbank, in der Sie wiederherstellen, kann nicht von einem anderen Prozess verwendet werden. Ich bin nicht sicher, wie ich alle Prozesse, die auf eine Datenbank zugreifen, per Skript beenden soll.
Nathan Niesen
Hallo NateN, es funktioniert jetzt einwandfrei, ich verwende Ihren Beispielcode und dann habe ich kleine Änderungen an diesem Code vorgenommen, dann funktioniert es einwandfrei .... Nochmals vielen Dank für die Bereitstellung des Beispielcodes ...
Victor Athoti.
1
Für sql2014 und darüber hinaus DECLARE @BackupFiles...benötigt die Zeile eine zusätzliche Spalte:SnapshotURL nvarchar(360)
Fiat
3

Es ist tatsächlich ein bisschen einfacher als das Wiederherstellen auf demselben Server. Grundsätzlich gehen Sie einfach durch die Optionen "Datenbank wiederherstellen". Hier ist ein Tutorial für Sie:

http://www.techrepublic.com/blog/window-on-windows/how-do-i-restore-a-sql-server-database-to-a-new-server/454

Vor allem, da es sich um eine nicht produktive Wiederherstellung handelt, können Sie sich wohl fühlen, wenn Sie sie einfach ausprobieren, ohne sich über die Details Gedanken machen zu müssen. Platzieren Sie einfach Ihre SQL-Dateien an der gewünschten Stelle auf Ihrem neuen Server und geben Sie ihm den gewünschten Namen. Dann können Sie loslegen.

IAmTimCorey
quelle
HI, ich muss auf demselben Server, einer anderen Datenbank wiederherstellen ... (Die Wiederherstellungsdatenbank hat einen anderen Namen)
LocustHorde
Entschuldigung, ich habe die Frage falsch verstanden. Es gelten die gleichen Grundprinzipien. Sie müssen lediglich sicherstellen, dass der neue Name und die neuen Dateinamen (MDF, LDF usw.) unterschiedlich sind.
IAmTimCorey
3

Wenn keine Datenbank vorhanden ist, verwende ich den folgenden Code:

ALTER PROCEDURE [dbo].[RestoreBackupToNewDB]    
         @pathToBackup  varchar(500),--where to take backup from
         @pathToRestoreFolder  varchar(500), -- where to put the restored db files 
         @newDBName varchar(100)
    AS
    BEGIN

            SET NOCOUNT ON
            DECLARE @fileListTable TABLE (
            [LogicalName]           NVARCHAR(128),
            [PhysicalName]          NVARCHAR(260),
            [Type]                  CHAR(1),
            [FileGroupName]         NVARCHAR(128),
            [Size]                  NUMERIC(20,0),
            [MaxSize]               NUMERIC(20,0),
            [FileID]                BIGINT,
            [CreateLSN]             NUMERIC(25,0),
            [DropLSN]               NUMERIC(25,0),
            [UniqueID]              UNIQUEIDENTIFIER,
            [ReadOnlyLSN]           NUMERIC(25,0),
            [ReadWriteLSN]          NUMERIC(25,0),
            [BackupSizeInBytes]     BIGINT,
            [SourceBlockSize]       INT,
            [FileGroupID]           INT,
            [LogGroupGUID]          UNIQUEIDENTIFIER,
            [DifferentialBaseLSN]   NUMERIC(25,0),
            [DifferentialBaseGUID]  UNIQUEIDENTIFIER,
            [IsReadOnly]            BIT,
            [IsPresent]             BIT,
            [TDEThumbprint]         VARBINARY(32) -- remove this column if using SQL 2005
            )
            INSERT INTO @fileListTable EXEC('RESTORE FILELISTONLY FROM DISK ='''+ @pathToBackup+'''')
            DECLARE @restoreDatabaseFilePath NVARCHAR(500)
            DECLARE @restoreLogFilePath NVARCHAR(500)
            DECLARE @databaseLogicName NVARCHAR(500)
            DECLARE @logLogicName NVARCHAR(500)
            DECLARE @pathSalt uniqueidentifier = NEWID()

            SET @databaseLogicName = (SELECT LogicalName FROM @fileListTable WHERE [Type]='D') 
            SET @logLogicName = (SELECT LogicalName FROM @fileListTable WHERE [Type]='L')           
            SET @restoreDatabaseFilePath= @pathToRestoreFolder + @databaseLogicName + convert(nvarchar(50), @pathSalt) + '.mdf'
            SET @restoreLogFilePath= @pathToRestoreFolder + @logLogicName + convert(nvarchar(50), @pathSalt) + '.ldf'

            RESTORE DATABASE @newDBName FROM DISK=@pathToBackup     
            WITH 
               MOVE @databaseLogicName TO @restoreDatabaseFilePath,
               MOVE @logLogicName TO @restoreLogFilePath

            SET NOCOUNT OFF
    END
Konstantin Chernov
quelle
3
  • Ich habe den gleichen Fehler wie in diesem Thema, wenn ich eine neue Datenbank mit einer alten Datenbank wiederherstelle. (Die Verwendung von .bak führt zu demselben Fehler.)

  • Ich habe den Namen der alten Datenbank durch den Namen der neuen Datenbank geändert (das gleiche Bild). Es funktionierte.

Geben Sie hier die Bildbeschreibung ein

Nguyen Duc Hai
quelle
2
Bitte löschen Sie das nächste Mal den Namen der Bank
Danh
1

Hier erfahren Sie, wie Sie ein Backup als zusätzliche Datenbank mit einem eindeutigen Datenbanknamen wiederherstellen.

Für SQL 2005 funktioniert dies sehr schnell. Ich bin sicher, dass neuere Versionen genauso funktionieren werden.

Erstens müssen Sie Ihre ursprüngliche Datenbank nicht offline schalten. Aber aus Sicherheitsgründen mag ich. In meinem Beispiel werde ich einen Klon meiner "Abrechnungs" -Datenbank bereitstellen, der den Namen "Abrechnungsklon" trägt.

1) Erstellen Sie eine gute Sicherung der Rechnungsdatenbank

2) Aus Sicherheitsgründen habe ich das Original wie folgt offline geschaltet:

3) Öffnen Sie ein neues Abfragefenster

**WICHTIG! Lassen Sie dieses Abfragefenster geöffnet, bis Sie fertig sind! Sie müssen die Datenbank in diesem Fenster wiederherstellen!

Geben Sie nun folgenden Code ein:

-- 1) free up all USER databases
USE master;
GO
-- 2) kick all other users out:
ALTER DATABASE billing SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- 3) prevent sessions from re-establishing connection:
ALTER DATABASE billing SET OFFLINE;

3) Klicken Sie anschließend in Management Studio im Objekt-Explorer auf Datenbanken und wählen Sie "Datenbank wiederherstellen".

4) Geben Sie einen neuen Namen in das Feld "Zur Datenbank" ein. IE Abrechnungsklon

5) Klicken Sie in Source for Restore auf "From Device" und dann auf die Schaltfläche ... navigieren

6) Klicken Sie auf Hinzufügen und navigieren Sie zu Ihrem Backup

7) Setzen Sie ein Häkchen neben Wiederherstellen (Wählen Sie die wiederherzustellenden Sicherungssätze aus).

8) Wählen Sie als nächstes die Seite OPTIONEN in der oberen linken Ecke

9) Bearbeiten Sie nun die Datenbankdateinamen in RESTORE AS. Tun Sie dies sowohl für die Datenbank als auch für das Protokoll. IE billingclone.mdf und billingclone_log.ldf

10) Drücken Sie nun OK und warten Sie, bis die Aufgabe abgeschlossen ist.

11) Klicken Sie in Ihrem Objekt-Explorer auf Aktualisieren und Sie sehen Ihre neue Datenbank

12) Jetzt können Sie Ihre Rechnungsdatenbank wieder online stellen. Verwenden Sie dasselbe Abfragefenster, in dem Sie die Abrechnung offline geschaltet haben. Verwenden Sie diesen Befehl:

-- 1) free up all USER databases
USE master; GO
-- 2) restore access to all users:
ALTER DATABASE billing SET MULTI_USER WITH ROLLBACK IMMEDIATE;GO
-- 3) put the db back online:
ALTER DATABASE billing SET ONLINE;

getan!

gim
quelle
1
  1. Erstellen Sie eine Kopie aus Ihrer Datenbank mit der Option "Datenbank kopieren" mit einem anderen Namen
  2. Neue kopierte Datenbank sichern
  3. stelle es wieder her!
Sedras
quelle