最近在研究自动部署的问题。其中一个需求是能否对数据库进行快速地备份和还原操作。传统的完全备份和还原非常耗时,不太可取,我知道自从SQL Server 2005 以来,SQL Server 提供了快照功能,可以快速建立起一个只读快照,那么我们能否把这个快照作为备份并用来还原数据库呢?答案是:可以!不过这种备份、还原方式有若干限制,比如,需要还原的数据库必须只有一个快照,其它限制我也忘了,似乎对我不构成问题。下面来具体说明如何操作,假设我们打算对数据库 MyDb 创建一个快照 MyDBSnapshot,我们还假设数据库只有一个逻辑数据文件。
CREATEFUNCTION [dbo].[GET_NUMBER](@S VARCHAR(100)) RETURNSVARCHAR(100) AS BEGIN WHILEPATINDEX('%[^0-9-.]%',@S) > 0 BEGIN SET @S = STUFF(@S, PATINDEX('%[^0-9-.]%', @S), 1, '') END RETURN @S END