首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

写了一个系统函数,删除不掉了。该怎么处理

2012-01-31 
写了一个系统函数,删除不掉了。。。以下内容是看论坛一个帖子学的,我也写了一个类似的,但却修改不了,也删除不

写了一个系统函数,删除不掉了。。。
以下内容是看论坛一个帖子学的,我也写了一个类似的,但却修改不了,也删除不掉,这个函数变成 'system_function_schema '的了,大家可以测试一下


可以写一个系统函数,前提是必须以fn_开头:
如:
use   master
go
create   function   fn_Trim(@v   Nvarchar(4000))
returns   Nvarchar(4000)
as
begin
return   ltrim(rtrim(@v))
end
go
exec   sp_configure   'allow   updates ',1
reconfigure   with   override
go
exec   sp_mschangeobjectowner   'fn_Trim ', 'system_function_schema '
go
exec   sp_configure   'allow   updates ',0
reconfigure   with   override

go
--调用
use   northwind
go
select   fn_trim(N 'a   ')--不带用户名




[解决办法]
use master
go
exec sp_configure 'allow updates ',1
reconfigure with override
go
delete sysobjects where name = 'fn_Trim '
[解决办法]
楼主,sp_mschangeobjectowner 这个存储过程在帮助里是没有文档的,你是怎么找出来的?
[解决办法]
要放开修改系统对象的权限
[解决办法]
这是一个未公开的存储过程,帮助里有sp_changeobjectowner 功能一样
[解决办法]
--直接更改sysobjects表uid列为1
exec sp_configure 'allow updates ',1
reconfigure with override
go
update sysobjects set uid = 1 where name = 'Fn_Trim '
go
exec sp_configure 'allow updates ',0
reconfigure with override
--成功删除
drop function Fn_Trim

热点排行