8

我正在开发一个首先使用实体​​框架代码进行迁移的站点。在每个主要版本发布后,我都会复制一份生产数据并在我的开发环境中进行设置。我发现为了在迁移中使用生产数据副本,需要将__MigrationHistory表从旧的开发数据库映像复制到生产数据库副本。

这很好用,除了一个烦人的细节:该_MigrationHistory表作为用户表而不是系统表出现。只要我记得将它从我的数据库差异中过滤出来,这不是一个严重的问题。但我更愿意让新__MigrationHistory表成为系统表,就像它在由 EF 迁移创建的数据库中一样。

有没有办法可以创建或复制 SQL Server 表,使其看起来像系统表?

4

2 回答 2

6

使用以下命令将您的表更改为系统对象。因此它将出现在系统对象中。

EXEC sys.sp_MS_marksystemobject _MigrationHistory
于 2014-01-15T22:53:59.223 回答
1

据我了解,这不是建议的做法。

请参阅 TechNet 文章

作为一种可能的解决方案,我建议声明一个新模式,例如 ETL 或 Mig,并为该模式分配安全措施,如果您担心这些事情。这将用于将“_MigrationHistory”表与其余用户表分开。

编辑:刚刚在另一个问题中发现了这一点,如果你一心想要这样做可能会有所帮助。 堆栈溢出

于 2013-08-09T16:55:20.183 回答