SQL2008如何解决"不允许对系统目录进行即席更新"?
系统表sys.systypes中有任一数据
Name xtpye uid
dtBaseNo 106 1
要运行 update sys.systypes set length =9 where uid =1 and xtype = 106 提示
不允许对系统目录进行即席更新
如何解决?
[最优解释]
sp_configure 'allow updates',1
RECONFIGURE WITH override
go
UPDATE syscolumns SET colid=colid+1
WHERE id=object_id('employee')
update syscolumns set colid=1
where id=object_id('employee') and name='test1'
go
sp_configure 'allow updates',0
RECONFIGURE WITH override
[其他解释]
系统目录东西不能随便更改的
[其他解释]
下表列出了所有可用的配置选项、可能的设置范围及其默认值。配置选项旁的字母代码分别表示:
高级选项(只能由认证的 SQL Server 技术人员更改,并且更改前需要将 show advanced options 设为 1),用"A"标识。
需要服务器重新启动才能生效的选项,用"RR"标识。
自配置选项(由 SQL Server 根据系统需要自行配置的选项),用"SC"标识。
sp_configure,上面是要求
[其他解释]
sp_configure 'allow updates',1
RECONFIGURE WITH override
go
update sys.systypes set length =9 where uid =1 and xtype = 106
go
sp_configure 'allow updates',0
RECONFIGURE WITH override
[其他解释]
在 sql server 2005 和 sql server 2008 中,sys.systypes 是兼容视图,不允许直接更新,即使设置了 allow updates 选项。
[其他解释]
.
[其他解释]
将那个删除,再添加个同名的行不?
[其他解释]
sql server 2005 和 sql server 2008 已经不允许直接修改系统表,allow updates 选项已经不再有用。
看来只能通过 sp_depends 找出所有引用此类型的数据库对象,逐一修改。
[其他解释]
sql server 2005 和 sql server 2008
不再支持直接对系统表进行修改。
[其他解释]
这个不能直接改吧
[其他解释]
学习。
[其他解释]
试了sp_configure 'allow updates',1
RECONFIGURE WITH override
go
update sys.systypes set length =9 where uid =1 and xtype = 106
go
sp_configure 'allow updates',0
RECONFIGURE WITH override
提示
配置选项 'allow updates' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。
消息 259,级别 16,状态 1,第 1 行
不允许对系统目录进行即席更新。
配置选项 'allow updates' 已从 1 更改为 0。请运行 RECONFIGURE 语句进行安装。
[其他解释]
那该如何办?难道只能用手动?
问题出自当自定义了数据类型后,在有数据的表中发现引用自定义的数据类型长度不够,必须修改自定义的数据类型的长度,数据库中的多个表和存储过程都引用了该用户自定义数据类型后。
[其他解释]
该回复于2010-07-28 09:27:19被版主删除
[其他解释]
2005不可以了
[其他解释]
不能直接改,可以间接改吗?
[其他解释]
Thanks for your sharing
[其他解释]
具体怎么解决啊!