这个存储过程中的错误是什么

时间:2016-07-23 09:16:54

标签: sql-server stored-procedures

您好我在SP中使用Pivot但我无法执行此

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

错误显示为

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

当我删除它执行的CASE语句时。不知道为什么。

1 个答案:

答案 0 :(得分:2)

存储过程Ascend_sp_rpt_CashierTransactionAmt

  1. 在您运行的数据库上下文中不存在。检查您是否指向正确的数据库。
  2. 或者,模式dbo下存储的proc不存在,如果您最初在没有dbo的情况下创建了它,并且用户具有非dbo默认模式,那么它将在那个架构。有关架构的更多信息,请参阅SQL Server Best Practices – Implementation of Database Object Schemas
  3. ALTER表示您正在尝试修改现有存储过程,因此如果该语句因任何原因而不存在,则该语句将失败。如果它尚不存在,请将ALTER关键字替换为CREATE

    最后使用关键字GO结束您的creation / alter语句。有关其他语法示例,请参阅Create a Stored Procedure