解决的问题有两种,一种就是将数据库用户添加到 Model 数据库,因为所有新建数据库都是复制自 Model 数据库,因此重建 TempDB 数据库就自带了需要的数据库用户。这种做法的缺点也很明显,任何新建数据库都默认自带那些数据库用户,这可能并不是我们期望的。第二种方法是我们设立一个自动任务,每次 TempDB 数据库重建,我们就自动给它添加上需要的数据库用户。这里我们介绍一下如何实现第二种方法。
最近在研究自动部署的问题。其中一个需求是能否对数据库进行快速地备份和还原操作。传统的完全备份和还原非常耗时,不太可取,我知道自从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