SQLSERVER2000中函数内只能使用insert,update,delete对表变量进行操作,而不能操作表对象.楼主应该把函数转换为存储过程.

解决方案 »

  1.   

    例如这样:
    Create Proc alpha_CheckClassName(@ClassName nvarchar(200),@FatherID int)
    As
    Begin
    Declare @ClassID int
    Declare @T int

    Set @ClassID=0
    Select @T = Count(ClassID) From Room Where ClassName=@ClassName

    If @T>0
    Begin
    Update dbo.Room Set RecordCount=RecordCount+1 
    Where ClassName=@ClassName
    Select Top 1 @ClassID = ClassID From Room 
    Where ClassName=@ClassName
    End
    Else
    Begin
    Insert Into Room (ClassName,FatherID) Values(@ClassName,@FatherID)
    Set @ClassID=@@Identity
    End
    Return @ClassID
    End
    GO
    ----调用存储过程
    declare @ClassID int
    EXEC @ClassID = alpha_CheckClassName '分类名称',0