系统表的一些信息可以更新么?
[[SQL Server 不支持用户直接更新系统对象(如系统表、系统存储过程和目录视图)中的信息]]
1、这里不支持直接 那就是还有间接的方法?如何做呢?
2、更新系统有意义么? 适合的场所是什么?

解决方案 »

  1.   

    SQL2000印象中好像有些系统表可以更新,不过更新前要设置系统表可更新
      

  2.   

    尽量不要修改系统表.因为如果对系统表了解不深,容易使sql server崩溃.
    当然有的系统表的信息时可以修改的,比如记录job运行状态结果的表,就是可以修改的.
      

  3.   

    SQL服务器更改了机器名之后作业删除不了use msdb 
    go 
    SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE 
    GO 
    update sysjobs set originating_server=@@servername 
    go 
    SP_CONFIGURE 'ALLOW UPDATES',0 RECONFIGURE WITH OVERRIDE 
    GO
      

  4.   

    1. 不建议修改系统表,因为不恰当的修改,可能造成数据库的损坏。
    2. 有时候非要修改的话,要先开,修改完后,马上关闭。
    3. 语句--open
    Exec sp_configure 'allow updates' ,1
    reconfigure with override--close
    Exec sp_configure 'allow updates' ,0
    reconfigure with override4. 举一个要修改的例子
    比如利用语句 alter table 添加列的时候,并不能指定添加的位置(只能在最后),
    而有时为了美观统一等因素,要将新列添加到指定位置。如id栏位,一般都是在最前面。。
    这种情况下,你就需要去update syscolumns的 colid 、colorder 栏位了。
    再比如,修改表名,也要用到修改系统表
    等等。。