SQL Restore Montag, 12. Dezember 2011 19:42   \\\'\'\ **::SET VARIABLES** set DBNAME=NAMEOFDATABASEBEINGRESTORED set DBDIRECTORY=C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data   TITLE Restoring %DBNAME% Database   **::PUT DATABASE IN SINGLE USER MODE TO ALLOW RESTORE** osql -E -d master -Q \"alter database %DBNAME% set single_user with rollback immediate\"   **::RESTORE DATABASE** osql -E -d master -Q \"restore database %DBNAME% from disk=\'%\~dp0\\%DBNAME%.bak\' WITH MOVE \'%DBNAME%\_Data\' TO \'%DBDIRECTORY%\\%DBNAME%\_Data.MDF\', MOVE \'%DBNAME%\_Log\' TO \'%DBDIRECTORY%\\%DBNAME%\_Log.LDF\'\"   **::GRANT PERMISSION TO ASPNET USER** osql -E -d %DBNAME% -Q \"sp_grantdbaccess \'%COMPUTERNAME%\\ASPNET\'\" osql -E -d %DBNAME% -Q \"sp_addrolemember \'db_owner\', \'%COMPUTERNAME%\\ASPNET\'\"   **::RESTORE TO MULTI USER** osql -E -d master -Q \"alter database %DBNAME% set multi_user\"   pause   Eingefügt aus \<\>             2. Möglichkeit : > Batchdatei > > sqlcmd -S .\\SQLEXPRESS -i attachDB.sql -v database=\"%1\" -v root=\"%CD%\" > >   > > Eingefügt aus \<\> > >   > >   > > attachDB.sql > >   > > USE MASTER > > GO > > IF EXISTS (SELECT \* FROM sys.objects WHERE object_id = OBJECT_ID(N\'\[dbo\].\[\$(database)\]\') AND type in (N\'U\')) > > ALTER DATABASE \$(database) SET SINGLE_USER WITH ROLLBACK IMMEDIATE; > > create table #backupInformation (LogicalName varchar(100), > > PhysicalName varchar(100), > > Type varchar(1), > > FileGroupName varchar(50) , > > Size bigint , > > MaxSize bigint, > > FileId int, > > CreateLSN int, > > DropLSN int, > > UniqueId uniqueidentifier, > > ReadOnlyLSN int, > > ReadWriteLSN int, > > BackupSizeInBytes int, > > SourceBlockSize int, > > FileGroupId int, > > LogGroupGUID uniqueidentifier, > > DifferentialBaseLSN bigint, > > DifferentialBaseGUID uniqueidentifier, > > IsReadOnly bit, IsPresent bit ) > > insert into #backupInformation exec(\'restore filelistonly from disk = \'\'\$(root)\\\$(database).bak\'\'\') > > DECLARE \@logicalNameD varchar(255); > > DECLARE \@logicalNameL varchar(255); > > select top 1 \@logicalNameD = LogicalName from #backupInformation where Type = \'D\'; > > select top 1 \@logicalNameL = LogicalName from #backupInformation where Type = \'L\'; > > DROP TABLE #backupInformation > > RESTORE DATABASE \$(database) > > FROM DISK = \'\$(root)\\\$(database).bak\' > > WITH REPLACE, > > MOVE \@logicalNameD TO \'C:\\Program Files (x86)\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\\$(database).mdf\', > > MOVE \@logicalNameL TO \'C:\\Program Files (x86)\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\\$(database).ldf\' > > GO > >   > >   > >   #nochzubearbeiten