2016-07-23 7 views
0

Hallo ich eine Pivot in SP verwenden, aber ich kann diesenwas ist der Fehler in dieser gespeicherten Prozedur

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 

Der Fehler nicht ausführen zeigt als

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

Wenn ich die CASE-Anweisung entfernt sie ausgeführt . Ich weiß nicht warum.

+3

Abfrage ist korrekt. Show all code in sp – NEER

+3

Sie versuchen, dieses sp zu ändern - haben Sie es vorher erstellt? Gibt es ein 'exec'-Beispiel nach dem' END' von sp? Setzen Sie "GO" zwischen SP-Code und Code, der diesen SP verwendet. –

Antwort

2

Die gespeicherte Prozedur Ascend_sp_rpt_CashierTransactionAmt

  1. nicht in der Datenbank Kontext Existiert in dem Sie ausgeführt werden. Überprüfen Sie, ob Sie auf die richtige Datenbank zeigen.
  2. Oder der gespeicherte Prozess existiert nicht unter dem Schema dbo, wenn Sie es ursprünglich ohne dbo mit einem Benutzer erstellt haben, der ein nicht dbo Standardschema hat, dann wird es in diesem Schema erstellt. Weitere Informationen zu Schemas SQL Server Best Practices – Implementation of Database Object Schemas

sehen Die ALTER bedeutet, dass Sie versuchen, eine vorhandene gespeicherte Prozedur zu ändern, so dass, wenn sie nicht bereits für existieren welchem ​​Grund auch immer scheitern wird die Erklärung. Wenn es noch nicht existiert, ersetzen Sie das Schlüsselwort ALTER durch CREATE.

Schließlich beenden Sie Ihre Erstellung/Änderung Anweisung mit dem Schlüsselwort GO. Weitere Syntaxbeispiele finden Sie unter Create a Stored Procedure.

Verwandte Themen