如何创建SQL Server系统表

时间:2013-08-09 00:11:43

标签: entity-framework tsql ef-migrations

我正在开发一个首先使用Entity Framework代码进行迁移的网站。在每个主要版本之后,我会获取生产数据的副本并在我的开发环境中进行设置。我发现为了使用带有迁移的生产数据副本,有必要将__MigrationHistory表从旧的开发数据库映像复制到生产数据库副本。

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

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

2 个答案:

答案 0 :(得分:6)

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

EXEC sys.sp_MS_marksystemobject _MigrationHistory

答案 1 :(得分:1)

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

See TechNet Article

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

编辑: 刚刚在另一个问题中找到了这个,如果您愿意这样做,可能会有所帮助。 StackOverflow