Files
SecMPS/api_sqlsugar/VolPro.Core/DbManager/DbCopy/DbCopySqlserver.cs
2026-05-15 23:22:48 +08:00

43 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VolPro.Core.Configuration;
namespace VolPro.Core.DbManager.DbCopy
{
public class DbCopySqlserver
{
public static string CopyDatabase(string dbEmpty, string dbName)
{
string DBPath = AppSetting.GetSettingString("DBPath");
string DBBackPath = AppSetting.GetSettingString("DBBackPath");
string sql = @$"USE [master]
CREATE DATABASE [{dbName}]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'{dbName}', FILENAME = N'{DBPath}\{dbName}.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'{dbName}_log', FILENAME = N'{DBPath}\{dbName}_log.ldf' , SIZE = 2048KB , FILEGROWTH = 10%)
USE [master]
BACKUP DATABASE [{dbEmpty}] TO DISK = N'{DBBackPath}\{dbEmpty}.bak' WITH COPY_ONLY, NOFORMAT, INIT,
NAME = N'{dbEmpty}', SKIP, NOREWIND, NOUNLOAD, STATS = 10
--还原数据库
DECLARE @tomdf NVARCHAR(50)=N'{DBPath}\{dbName}.mdf'
DECLARE @tolog NVARCHAR(50)=N'{DBPath}\{dbName}.ldf'
RESTORE DATABASE [{dbName}] FROM DISK = N'{DBBackPath}\{dbEmpty}.bak' WITH FILE = 1,
MOVE N'{dbEmpty}' TO @tomdf, MOVE N'{dbEmpty}_log' TO @tolog, NOUNLOAD, REPLACE, STATS = 5;
alter database {dbName} modify file(name={dbEmpty}, newname={dbName});
alter database {dbName} modify file(name={dbEmpty}_log, newname={dbName}_log) ";
return sql;
}
}
}