我正在开发一个首先使用Entity Framework代码进行迁移的网站。在每个主要版本之后,我会获取生产数据的副本并在我的开发环境中进行设置。我发现为了使用带有迁移的生产数据副本,有必要将__MigrationHistory
表从旧的开发数据库映像复制到生产数据库副本。
除了一个烦人的细节外,这种方法很好:_MigrationHistory
表作为用户表而不是系统表出现。只要我记得从数据库差异中过滤掉它,这不是一个严重的问题。但我更希望将新的__MigrationHistory
表作为系统表,就像在EF迁移创建的数据库中一样。
有没有办法可以创建或复制SQL Server表,使其看起来像是系统表?
答案 0 :(得分:6)
使用以下命令将表更改为系统对象。因此它将出现在System Objects中。
EXEC sys.sp_MS_marksystemobject _MigrationHistory
答案 1 :(得分:1)
根据我的理解,这不是建议的做法。
作为一种可能的解决方案,我建议您声明一个新架构,例如ETL或Mig,并为该架构分配安全措施,如果您担心这些问题。这将用于将'_MigrationHistory'表与其余用户表分开。
编辑: 刚刚在另一个问题中找到了这个,如果您愿意这样做,可能会有所帮助。 StackOverflow