none
找不到存储过程 'sys.sp_refreshsqlmodule' RRS feed

  • 问题

  • 两个问题:
    一是无论在普通库还是Master里面都找不到sys.sp_refreshsqlmodule(注:sql版本为2005sp2)

    二是查找Msdn的解释里发现示例有错误(http://msdn.microsoft.com/zh-cn/library/bb326754.aspx)
    如下
    -- Increase the length of the alias type.
    sp_rename 'mytype', 'myoldtype', 'userdatatype';
    提示错误如下:
    无法重命名类型 'mytype',因为对象 'to_upper' 正在引用它。

    召冠
    2010年2月25日 3:34

答案

全部回复

  • 1. it's system sp  in master db.
    2. that means the udt is used in table, can't rename while be using.
    2010年2月25日 3:45
  • 1. 使用下面的查询, 并且要保证你有足够的权限
    select SCHEMA_NAME(schema_id),* from sys.all_objects 
    where name = 'sp_refreshsqlmodule'

    2. 要先删除依赖对象
    2010年2月25日 3:58
  • Don't have to delete anything, find the column that uses this udt and change data type. Can change back after renaming udt.
    2010年2月25日 4:05
  • 但是我在master库中没有找到该存储过程(根据MSDN上的描述是有的),我现在想用它但找不到。
    我使用的是sa,应该不存在权限不足的问题。

    关于第二个,是我发现MSDN的示例代码有错误,在这里反馈一下。

    召冠
    2010年2月25日 4:21
  • I can find it on my servers.
    • 已标记为答案 江城 2010年2月25日 4:50
    2010年2月25日 4:23
  • -- 随便一个 db 下都可以通过这个来看 (不行的话换个 server, 确定一下不是版本或者server的问题)

    exec sp_helptext 'sys.sp_refreshsqlmodule'

    • 已标记为答案 江城 2010年2月25日 4:50
    2010年2月25日 4:26
  • 我也不知道是怎么回事,我单位的所有服务器及本地联机帮助都没有sp_refreshsqlmodule的任何信息!欲哭无泪!

    不过,还是谢谢两位的帮助!!

    召冠
    2010年2月25日 4:39
  • 找到原因了,就是因为没有打SQL SERVER 2005 SP2!
    开始我看错了,搞成winows2003的sp2了,惭愧!
    msdn的示例代码在sp2的版本下也可以正确运行(微软真该在那里注明需要 sp2)

    谢谢 rmiao zjcxc.邹建 二位的及时回复!
    2010年2月25日 6:43