Это может быть намного больше, чем вы просите, но это решит вашу проблему.
Это спросит вас, хотите ли вы восстановить из шаблона, если нет, тогда он создаст пустую базу данных.
$backupFilePath=''
$TempDB=''
$TempDBlog=''
$DBName=''
$Logfilepath=''
$Datafilepath=''
$confirmation = Read-Host "Do you want to use a DB template? [y/n]"
If($confirmation.ToUpper().StartsWith("Y"))
{
$dbCommand = "use [master];RESTORE DATABASE [$DBName] " + "FROM DISK = N'$backupFilePath'" + "WITH FILE = 1, NOUNLOAD, STATS = 10, " + "move '$TempDB' to '$Datafilepath" + "\" + "$DBName" + ".mdf', " + "move '$TempDBlog' to '$Logfilepath" + "\" + "$DBName" + ".ldf';" + "alter database [$DBName] modify file (name=N'$TempDB ', newname=N'$DBName" + "_data1');" + "alter database [$DBName] modify file (name=N'$TempDBlog', newname=N'$DBName" + "_log1');" + "alter database [$DBName] set read_committed_snapshot on with rollback immediate;" + "alter database [$DBName] set COMPATIBILITY_LEVEL = 100;"
}
else {
$dbCommand = "use [master];CREATE DATABASE [$DBName] ON " + "(NAME='$DBName" + "_data1', FILENAME='$Datafilepath" + "\" + "$DBName" + "_data1.mdf', SIZE=1GB, MAXSIZE=UNLIMITED, FILEGROWTH=200MB)" + "LOG ON (NAME='$DBName" + "_log1', FILENAME='$Logfilepath" + "\" + "$DBName" + "_log1.ldf', SIZE=1GB, MAXSIZE=UNLIMITED, FILEGROWTH=200MB); " + "alter database [$DBName] set read_committed_snapshot on with rollback immediate;" + "alter database [$DBName] set COMPATIBILITY_LEVEL = 100; " + "set AUTO_CLOSE OFF;"
}
Кому-то придется отредактировать это в приятный кодовый разрыв, потому что он не позволяет мне это делать.