2016-05-12 6 views
-2

EscalationStatusという名前のテーブルからすべてのレコードをクエリするストアドプロシージャを作成しました。ストアドプロシージャスクリプトで無効なオブジェクト名を解決するにはどうすればよいですか?

しかし、上の私は、プロシージャ名を宣言するところ、エラーがスローされたSQL Serverの2014 Management Studioで、中にSQLスクリプトの実行 - 私はプロシージャ名がSQLの名前と一致したことを次のようにチェック

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

DB名が有効であることを確認します。

また、エラーをクリアしなかった「Intellisenseキャッシュをリフレッシュする」手順を実行しました。

質問:プロシージャ名は無効なオブジェクト名として評価される理由 誰でも知っていますか?

テーブル名がEscalationStatus次のとおりです。 tables

`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 
+2

SPは実際にはまだ存在しますか?私。 'ALTER'を' CREATE'で置き換えようとしましたか? –

+0

また、SQL Server 2013は何ですか? –

+1

新しいストアドプロシージャを作成する場合、plはALTERではなくCREATEを使用します。 (CREATE PROCEDURE [dbo]。[GET_STATUS] ...) –

答えて

1

アルター手続きスクリプトから次の行を削除するか、上記のクエリで非常に最初の行でそれをコメントアウト:

`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 
+0

投票の理由は何ですか?私はここで何か間違ったとは思わない。 –

+0

'GET_STATUS'ストアドプロシージャ:この行は挑戦的に問題を引き起こすでしょう。 –

+0

私はここでいくつかの連続したdownvotesを見ることができます:(私はあなたの答えが正しいと思われるので、smtgは違っていました:)まあ、あなたは 'create'または' alter'についていくつかの単語を追加できます。 – Arvo

-1

CREATE/ALTERプロシージャのテンプレート

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 
関連する問題