日期:2014-05-17  浏览次数:20485 次

sqlserver2008R2 新创建函数或存储过程后使用无效,必须重启management studio后生效
在查询分析器中,我创建了一个函数getInBoxCount
SQL code

-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================

-- =============================================
CREATE FUNCTION getInBoxCount
(
    -- Add the parameters for the function here
    
)
RETURNS int
AS
BEGIN
    -- Declare the return variable here
    declare @rnt int 
    select @rnt=COUNT(1) from InBox
    return @rnt

END
GO



执行成功。

然后我又打开一个新的查询分析器,测试这个函数。
输入dbo. 自动显示可选函数列表中,列表找那个根本就没有这个函数。

不管它,继续
declare @cnt int 
set @cnt=dbo.getinboxcount()
print @cnt

执行,成功。但函数getinboxcount处会有红色下划线,提示找不到用户定义的函数,或名称不正确。
新建存储过程也这样。

重新启动management studio,再进行测试,就正常了

这个问题怎么解决啊,不能每写一个存储过程或函数,就重新打开一下management studio吧




------解决方案--------------------
原因:http://zhidao.baidu.com/question/324094717.html?seed=0
解决:试一下重装看看,这种情况其实不多见,当然我也见过,重装了就好了,不知道你的重装会不会也好了
------解决方案--------------------
那就不【重装】,只【修复】