表名为sys的表。 ,我们可以更新这些表吗?
更新这些表的任何架构或更新表中的值?
答案 0 :(得分:2)
通常不是因为它们应该使用适当的存储过程来设置。你不应该试图超越SQL Server
。
返回SQL Server 2000
,您可以使用allow updates Option:
使用allow updates选项指定是否可以进行直接更新 制作系统表。默认情况下,禁用允许更新(设置为 0),因此用户无法通过即席更新来更新系统表。用户 可以仅使用系统存储过程更新系统表。何时 允许更新被禁用,不允许更新,即使您有 适当的权限(使用GRANT语句分配)。
启用允许更新(设置为1)时,任何具有适当权限的用户 权限可以使用即席更新直接更新系统表 可以创建更新系统表的存储过程。
从SQL Server 2008
起,它已过时到allow updates:
将在Microsoft SQL的未来版本中删除此功能 服务器。不要在新的开发工作中使用此功能,并进行修改 目前正在使用此功能的应用程序。
更改允许更新选项将导致RECONFIGURE语句 失败。应删除对允许更新选项的更改 所有脚本。
禁用它的关键点非常简单。如果您对元数据造成严重影响,可以阻止SQL Server
实例运行或导致数据丢失。
答案 1 :(得分:0)
不,你不能更新sys.objects或sys tables等等。并且它们甚至不是表格开头:它们实际上是视图。
能够直接更新系统元数据以SQL Server 2005的发布结束,这是所有元数据访问切换为视图的时候。