原理跟执行SQL语句一样,只是语句和权限有所不同。
备份语句:
backup database @dbName to disk = @bakName
@dbName为要备份的数据库名,@bakName为要备份到的路径
权限要求:对备份数据库的DB Owner,对备份数据库进行操作
还原语句:
Alter Database {0} Set Offline with Rollback immediate; //离线数据库
restore database @dbName from disk =@bakName; //还原数据库
Alter Database {0} Set Online with Rollback immediate; //上线数据库
{0}为进行还原的数据库名称,很奇怪不能用参数进行传递,所以只好用:string.Format(SQL_RESTORE_DATABASE, dbInfo.DbName)这样来付值(SQL_RESTORE_DATABASE为上面的SQL语句)。
@dbName为要备份的数据库名,@bakName为要备份到的路径
权限要求:对还原的数据库用DB Owner权限,另外还要有System Administrators和Database Creator的权限,而且操作时应对Master库。