2017-09-28 13 views
0

を供給していなかったパラメータが、私はこのSQL Server 2000の:期待し

ALTER PROC [dbo].[SP_COMP] 
    (@comp_seq INT, 
    @channel VARCHAR(10), 
    @comp_type VARCHAR(10), 
    @periode_awal DATETIME, 
    @periode_akhir DATETIME, 
    @period_type VARCHAR(20), 
    @rn_from DATETIME, 
    @mode int) 

のようなストアドプロシージャを作成し、私はそれを実行します。

EXEC [SP_COMP] 16, 'A', '', '2017-07-16', '2017-07-31', 'MONTH_END', '2017-07-01', 6 

しかし、私はこのエラーを取得する:

レベル16、状態3、プロシージャSP_COMP、行0
手順 'SP_COMP'が必要です。パラメータ '@rn_from'は提供されませんでした

私の手順に何か問題がありますか?

+2

問題はコードのどこかにある必要があります。使用したのとまったく同じヘッダーを持つプロシージャを作成すると、エラーなしで提供されたコマンドでプロシージャを実行できます。コード全体を提供できますか? – Tyron78

+0

間違って解釈される目に見えないchar ... – clementakis

+0

datetime変数を作成して、これらの変数を使用してプロシージャ – GuidoG

答えて

0

使用している接頭辞SP_に1つの問題がある可能性があります。
このhttp://sqlperformance.com/2012/10/t-sql-queries/sp_prefix
を参照して、このhttps://msdn.microsoft.com/en-us/library/ms190669(v=sql.105).aspx

はまた、プロシージャに渡す日時変数を作成してみてください。
も常に
http://www.karaszi.com/SQLServer/info_datetime.asp#DtFormatsInput

declare @periode_awal DATETIME = '20170716' 
declare @periode_akhir DATETIME = '20170731' 
declare @rn_from DATETIME = '20170701' 

EXEC [dbo].[SP_COMP] 16, 'A', '', @periode_awal, @periode_akhir, 'MONTH_END', @rn_from, 6 

この記事を参照して、datetime値のために言語中立形式を使用する私はまた、「値、より良い利用ヌル

EDIT
」で、あなたのテーブルを取り込むことはお勧めしません プロシージャを変更して1つのセッションで呼び出すと、2つのステートメントの間にGOを追加してください。

ALTER PROC [dbo].[SP_COMP](
    @comp_seq INT, 
    @channel VARCHAR(10), 
    @comp_type VARCHAR(10), 
    @periode_awal DATETIME, 
    @periode_akhir DATETIME, 
    @period_type VARCHAR(20), 
    @rn_from DATETIME, 
    @mode int 
) 

GO -- always put this after an alter or create statement 

declare @periode_awal DATETIME = '20170716' 
declare @periode_akhir DATETIME = '20170731' 
declare @rn_from DATETIME = '20170701' 

EXEC [dbo].[SP_COMP] 16, 'A', '', @periode_awal, @periode_akhir, 'MONTH_END', @rn_from, 6 
関連する問題