4

可以在 sys 架构 SQL Server 2008 中创建表吗?我知道可以将表标记为系统,但不能更改架构。有什么技巧吗?

4

3 回答 3

4

您不能将自己的对象添加到 sys 架构中。

不能在 sys 模式中创建用户定义的对象。
Gail Erickson [MS]
SQL Server 文档团队
此帖子按“原样”提供,不提供任何保证,也不授予任何权利

如果这还不够令人信服,请考虑系统对象存储在资源数据库中,它是只读的:

Resource 数据库是一个只读数据库,其中包含 SQL Server 附带的所有系统对象。SQL Server 系统对象,例如 sys.objects,在物理上持久保存在 Resource 数据库中,但它们在逻辑上出现在每个数据库的 sys 架构中。资源数据库不包含用户数据或用户元数据。

如果确实存在一些未记录的方法来执行此操作,正如其他人所说,这样做可能不符合您(或您的软件和团队)的最佳利益。我建议退后一步,从另一个角度解决你的问题。也许某种模拟设置?

于 2013-06-07T18:23:53.357 回答
3

这对我有用:

我使用 sql server 2012。不确定它是否适用于旧版本。

执行sp_addextendedproperty N'microsoft_database_tools_support', N'migration log', N'schema', N'dbo', N'table', N'__MigrationHistory'

有什么建议么 ?

于 2013-10-17T09:06:10.413 回答
2

您已经要求一种将对象标记为系统对象的方法。有一个未记录的程序就是sp_ms_marksystemobject这样做的。这有一些合法的用途,但在大多数情况下,您尝试做的事情会更好地完成而不会导致这种情况。简而言之,在使用它之前,请仔细权衡您的选择。你已经被预先警告过了。

于 2013-06-07T17:03:33.350 回答