在我的视图中使用存储过程?

时间:2015-11-21 09:30:52

标签: sql sql-server

我使用一个输入参数和两个返回值为'Code'编写了这个存储过程。现在,我想在我的视图中使用这个存储过程,但我不知道如何。

这是我的存储过程:

Create PROC [Document].[sp_SetDefault](
    @Code int,
    @ResultCodeString varchar(50) OUTPUT,
    @ResultCode INT OUTPUT) 
as 
begin 
   if(@Code=1) 
   begin
     set @ResultCodeString='...'
   end
   else 
   begin
       set @ResultCode=@Code 
   end
return 
End

1 个答案:

答案 0 :(得分:0)

您无法从视图中调用存储过程。视图本质上是一个SELECT语句的别名;存储过程是语句的集合(SELECT或UPDATE或任何东西)。

使用您所写内容的最简单方法是在您的视图中重新表达它。例如:

CREATE VIEW someview AS 
SELECT Code, 
       case Code when 1 then '...' else NULL end AS ResultCodeString,
       case Code when 1 then NULL else Code as ResultCode
FROM MyTable
GO