可以在sys架构SQL Server 2008中创建表吗? 我知道可以将表标记为系统,但不能更改模式。 有什么黑客吗?
答案 0 :(得分:4)
您无法将自己的对象添加到sys架构中。
无法在sys架构中创建用户定义的对象 盖尔埃里克森[MS]
SQL Server文档团队
此帖子按“原样”提供,不提供任何保证,并且不授予任何权利
如果这还不够令人信服,请考虑系统对象存储在资源数据库中,该数据库是只读的:
资源数据库是一个只读数据库,其中包含SQL Server附带的所有系统对象。 SQL Server系统对象(如sys.objects)在物理上保留在Resource数据库中,但它们在逻辑上出现在每个数据库的sys模式中。资源数据库不包含用户数据或用户元数据。
如果确实存在一些未记录的方法来执行此操作,正如其他人所说的那样,这可能不符合您(或您的软件和团队的利益)的最佳利益。我建议退一步从另一个角度攻击你的问题。也许某种模拟设置?
答案 1 :(得分:3)
这对我有用:
我使用sql server 2012.不确定它是否适用于旧版本。
EXEC sp_addextendedproperty N'microsoft_database_tools_support', N'migration log', N'schema', N'dbo', N'table', N'__MigrationHistory'
有什么建议吗?
答案 2 :(得分:2)
您已经要求将对象标记为系统对象的方法。有一个名为sp_ms_marksystemobject
的无证程序就是这样做的。这有一些合法的用途,但在大多数情况下,你要做的事情是更好的完成而不会导致这一点。简而言之,在使用之前仔细权衡您的选择。你已被预先警告过。