2016-07-23 3 views
0

안녕하세요 SP에서 피벗을 사용하고 있지만이이 저장 프로 시저

GO 
/****** Object: StoredProcedure [dbo].[Ascend_sp_rpt_CashierTransactionAmt] Script Date: 07/23/2016 12:00:51 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author:  <Author,,Venkat> 
-- Create date: <Create Date,23-07-2016,> 
-- Description: <Description,Cashier Transaction Amount Reports ,> 
-- ============================================= 
ALTER PROCEDURE [dbo].[Ascend_sp_rpt_CashierTransactionAmt] 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    SELECT * FROM(
SELECT 
b.Sale_Rate,b.Type,b.Type_Code,CASE 
WHEN 1=0 then convert(char(19),b.LogTime,20) 
ELSE convert(char(10),b.LogTime,20) 
END 'LogDate' from tbllog b)a 
PIVOT 
(
     Sum(Sale_Rate) 
     FOR Type IN ([S], [D], [C]) 
) AS P 
END 

을 실행할 수있는 오류 무엇 오류가 표시 나는 그것이 실행 된 CASE 문을 제거

Msg 208, Level 16, State 6, Procedure Ascend_sp_rpt_CashierTransactionAmt, Line 14 
Invalid object name 'dbo.Ascend_sp_rpt_CashierTransactionAmt'. 

로 왜 그런지 몰라.

+3

쿼리가 정확합니다. sp의 모든 코드 표시 – NEER

+3

이전에이 sp를 변경하려고 시도한 적이 있습니까? sp의'END' 뒤에'exec' 예제가 있습니까? sp 코드와이 sp를 사용하는 코드 사이에'GO '를 넣으십시오. –

답변

2

  1. Ascend_sp_rpt_CashierTransactionAmt가 실행되는 데이터베이스 컨텍스트에서 존재하지 않는 저장된 프로 시저. 올바른 데이터베이스를 가리키고 있는지 확인하십시오.
  2. dbo 스키마가 처음 저장된 경우 dbo이 아닌 사용자가 dbo 기본 스키마를 가진 사용자로 저장 프로 시저를 만들면 해당 스키마에 스키마가 만들어집니다. 더에 대한 스키마가 SQL Server Best Practices – Implementation of Database Object Schemas

를 참조에 대한 ALTER 당신이 그것을 이미 문이 실패합니다 어떤 이유에서 존재하지 않는, 그래서 기존의 저장 프로 시저를 수정하려고하는 것을 의미한다. 아직 존재하지 않는 경우 ALTER 키워드를 CREATE으로 대체하십시오.

마지막으로 GO 키워드로 creation/alter 문을 끝냅니다. 구문 예제는 Create a Stored Procedure을 참조하십시오.