SQL2008如何解决"不允许对系统目录进行即席更新"?

iamchuang 2009-11-08 08:08:21
系统表sys.systypes中有任一数据

Name xtpye uid

dtBaseNo 106 1

要运行 update sys.systypes set length =9 where uid =1 and xtype = 106 提示

不允许对系统目录进行即席更新

如何解决?
...全文
36000 18 打赏 收藏 举报
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Thanks for your sharing
  • 打赏
  • 举报
回复
elingsoft 2011-11-15
具体怎么解决啊!
  • 打赏
  • 举报
回复
大光呢 2011-07-11
[Quote=引用 14 楼 fredrickhu 的回复:]
这个不能直接改吧
[/Quote]

不能直接改,可以间接改吗?
  • 打赏
  • 举报
回复
tlmiai 2010-03-29
2005不可以了
  • 打赏
  • 举报
回复
--小F-- 2009-11-08
这个不能直接改吧
  • 打赏
  • 举报
回复
nalnait 2009-11-08
[Quote=引用 5 楼 xman_78tom 的回复:]
在 sql server 2005 和 sql server 2008 中,sys.systypes 是兼容视图,不允许直接更新,即使设置了 allow updates 选项。


[/Quote].
  • 打赏
  • 举报
回复
csdyyr 2009-11-08
学习。
  • 打赏
  • 举报
回复
xman_78tom 2009-11-08
在 sql server 2005 和 sql server 2008 中,sys.systypes 是兼容视图,不允许直接更新,即使设置了 allow updates 选项。

  • 打赏
  • 举报
回复
Leshami 2009-11-08
sql server 2005 和 sql server 2008
不再支持直接对系统表进行修改。
  • 打赏
  • 举报
回复
netcup 2009-11-08

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




  • 打赏
  • 举报
回复
xman_78tom 2009-11-08
sql server 2005 和 sql server 2008 已经不允许直接修改系统表,allow updates 选项已经不再有用。

看来只能通过 sp_depends 找出所有引用此类型的数据库对象,逐一修改。
  • 打赏
  • 举报
回复
SQL77 2009-11-08
[Quote=引用 9 楼 iamchuang 的回复:]
引用 7 楼 nalnait 的回复:
引用 5 楼 xman_78tom 的回复:
在 sql server 2005 和 sql server 2008 中,sys.systypes 是兼容视图,不允许直接更新,即使设置了 allow updates 选项。


.


那该如何办?难道只能用手动?
问题出自当自定义了数据类型后,在有数据的表中发现引用自定义的数据类型长度不够,必须修改自定义的数据类型的长度,数据库中的多个表和存储过程都引用了该用户自定义数据类型后。
[/Quote]
将那个删除,再添加个同名的行不?
  • 打赏
  • 举报
回复
SQL77 2009-11-08
下表列出了所有可用的配置选项、可能的设置范围及其默认值。配置选项旁的字母代码分别表示: 

高级选项(只能由认证的 SQL Server 技术人员更改,并且更改前需要将 show advanced options 设为 1),用"A"标识。


需要服务器重新启动才能生效的选项,用"RR"标识。


自配置选项(由 SQL Server 根据系统需要自行配置的选项),用"SC"标识。


sp_configure,上面是要求
  • 打赏
  • 举报
回复
SQL77 2009-11-08
系统目录东西不能随便更改的
  • 打赏
  • 举报
回复
iamchuang 2009-11-08
[Quote=引用 7 楼 nalnait 的回复:]
引用 5 楼 xman_78tom 的回复:
在 sql server 2005 和 sql server 2008 中,sys.systypes 是兼容视图,不允许直接更新,即使设置了 allow updates 选项。


.
[/Quote]

那该如何办?难道只能用手动?
问题出自当自定义了数据类型后,在有数据的表中发现引用自定义的数据类型长度不够,必须修改自定义的数据类型的长度,数据库中的多个表和存储过程都引用了该用户自定义数据类型后。
  • 打赏
  • 举报
回复
iamchuang 2009-11-08
试了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 语句进行安装。
  • 打赏
  • 举报
回复
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

  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题

2.1w+

社区成员

MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
加入社区
帖子事件
创建了帖子
2009-11-08 08:08
社区公告
暂无公告