2017-02-28 74 views
-3

我創建了一個表和存儲過程,通過reportnet上的GUI將數據插入到表中,但數據未被插入,所以我回來檢查插入存儲過程中是否有錯誤。通過存儲過程向表中插入數據

我試圖執行存儲過程作爲

EXEC DBO.Tablename 'param1','Param2' 

等,如果我正確地執行它,我不知道,但它的錯誤出來,如同一列更應提供。有人可以幫助我如何執行存儲過程來插入值?

這是我用來創建存儲過程的代碼:

Create Procedure dbo.abc_insert 
     @queryaction Varchar(6), 
     @a varchar(8), 
     @b varchar(16), 
     @c varchar(8), 
     @d varchar(16), 
     @e varchar(8), 
     @f DATETIME(16) 

    Declare @g DATETIME, 
      @Msg Varchar(max), 

    -- Variable initialization 
    select @g=processdate from util.dbo.processdate 

    -- validate @queryaction 
    IF @queryaction not in ('insert','delete') or @a is null 
    begin 
     set @msg='error' 
     Raiserror (@msg,18,1); 
     return 
    end 

    --INSERT 
    if @queryaction ='insert' 
     insert into dbo.abc_insert (a, b, c, d, e, f, g) 
     values (@a, @b, @c, @d, @e, @f, @g) 

我試圖執行這個查詢,檢查其在首位的工作看到任何編碼錯誤。

我試圖執行是這樣的:

EXEC dbo.abc_insert 'a', 'b', 'c', 'd', 'e', 'f' 
--(g value will be taken from process date so not entering g value) 

當執行這是,會發生這樣的錯誤:

程序或函數abc_insert預計參數@f,但未提供。

+0

請向我們展示您已完成的工作,然後社區中的某位成員將能夠爲您提供幫助。 – Gagan

+0

你可以分享代碼嗎? –

+0

我希望我現在有所作爲 – Gee

回答

0

的變量@f DATETIME(16)是錯誤的類型,

應該是很簡單@f DATETIME

+0

對不起,我用datetime只有它的錯字錯誤在這裏 – Gee

1

您需要將所有必需的參數 - 這是@queryaction首位,其次是六個值。您目前寄於六個值 - 但沒有查詢動作:

EXEC dbo.abc_insert 'a', 'b', 'c', 'd', 'e', 'f' 

您需要提供@queryaction價值呢!

EXEC dbo.abc_insert 'insert', 'a', 'b', 'c', 'd', 'e', 'f' 
+0

得到它謝謝:) – Gee