不行,WHERE子句中可以使用函数,但不能使用存储过程。

解决方案 »

  1.   

    不可以。改用函数如:CREATE FUNCTION CubicVolume
    -- Input dimensions in centimeters
       (@CubeLength decimal(4,1), @CubeWidth decimal(4,1),
        @CubeHeight decimal(4,1) )
    RETURNS decimal(12,3) -- Cubic Centimeters.
    AS
    BEGIN
       RETURN ( @CubeLength * @CubeWidth * @CubeHeight )
    END调用如:SELECT a.UserNo,a.UserName,b.Grade FROM TblStu a
           INNER JOIN TblGrade b ON b.UserNo=a.UserNo
           WHERE b.Grade>60 AND dbo.函数名(a.UserNo)=1
    函数名前面的dbo不要忘了。
      

  2.   

    不能直接在SQL查询中引用存储过程.将:IsLegalUser 改为自定义函数就行了.
      

  3.   

    未在下面的列表中列出的语句不能用在函数主体中。 赋值语句。
    控制流语句。
    DECLARE 语句,该语句定义函数局部的数据变量和游标。
    SELECT 语句,该语句包含带有表达式的选择列表,其中的表达式将值赋予函数的局部变量。
    游标操作,该操作引用在函数中声明、打开、关闭和释放的局部游标。只允许使用以 INTO 子句向局部变量赋值的 FETCH 语句;不允许使用将数据返回到客户端的 FETCH 语句。
    INSERT、UPDATE 和 DELETE 语句,这些语句修改函数的局部 table 变量。
    EXECUTE 语句调用扩展存储过程。