簡體   English   中英

如何解決存儲過程腳本中無效的對象名稱?

[英]How to resolve invalid object name in Stored procedure script?

我創建了一個存儲過程來查詢名為EscalationStatus的表中的所有記錄。

但是在 Sql Server 2014 Management Studio 中執行 sql 腳本時,會在我聲明過程名稱的地方引發錯誤 -

"Msg 208, Level 16, State 6, Procedure GET_STATUS, Line 19
Invalid object name 'dbo.GET_STATUS'."

我檢查了以下過程名稱是否與 sql 腳本的名稱匹配,並且數據庫名稱是有效的。

我還采取了“刷新智能感知緩存”的步驟,但沒有清除錯誤。

問題:有誰知道為什么過程名稱被評估為無效的對象名稱

表名是EscalationStatus 桌子

`GET_STATUS` stored procedure:

USE [NOTIFICATION]
GO
/****** Object:  StoredProcedure [dbo].[GET_STATUS]    Script Date: 12/05/2016 11:50:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[GET_STATUS]
AS 

   BEGIN     

SELECT 
      [EscStatus]
      ,[Color]
  FROM NOTIFICATION.dbo.EscalationStatus

   END

從 Alter 過程腳本中刪除以下行或在上述查詢的第一行將其注釋掉。:

 `GET_STATUS` stored procedure:

用這個:

--`GET_STATUS` stored procedure:

USE [NOTIFICATION]
GO
/****** Object:  StoredProcedure [dbo].[GET_STATUS]    Script Date: 12/05/2016 11:50:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[GET_STATUS]
AS 

   BEGIN     

SELECT 
      [EscStatus]
      ,[Color]
  FROM NOTIFICATION.dbo.EscalationStatus

   END

按照此模板創建/更改程序

IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[P1]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[P1]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE proc [dbo].[P1]
AS
BEGIN
  SELECT 1 AS VAL
END

GO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM