我们可以更新SQL Server中提供的系统表吗?

时间:2015-11-18 12:31:41

标签: sql sql-server-2008 sql-update

表名为sys的表。 ,我们可以更新这些表吗?

更新这些表的任何架构或更新表中的值?

2 个答案:

答案 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的发布结束,这是所有元数据访问切换为视图的时候。