系统表的一些信息可以更新么?
[[SQL Server 不支持用户直接更新系统对象(如系统表、系统存储过程和目录视图)中的信息]]
1、这里不支持直接 那就是还有间接的方法?如何做呢?
2、更新系统有意义么? 适合的场所是什么?
[[SQL Server 不支持用户直接更新系统对象(如系统表、系统存储过程和目录视图)中的信息]]
1、这里不支持直接 那就是还有间接的方法?如何做呢?
2、更新系统有意义么? 适合的场所是什么?
当然有的系统表的信息时可以修改的,比如记录job运行状态结果的表,就是可以修改的.
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
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 栏位了。
再比如,修改表名,也要用到修改系统表
等等。。