2017-02-28 5 views
-3

Ich erstellte eine Tabelle und gespeicherte Prozeduren zum Einfügen von Daten in der Tabelle über GUI in Reportnet, aber Daten werden nicht eingefügt, also kam ich zurück, um zu überprüfen, ob ein Fehler in meiner gespeicherten Prozedur ist.Einfügen von Daten in Tabelle über gespeicherte Prozedur

Ich habe versucht, die gespeicherte Prozedur als

EXEC DBO.Tablename 'param1','Param2' 

usw. Ich weiß nicht auszuführen, wenn ich es richtig ausgeführt wird, aber es Fehler als eine weitere Säule sollten geliefert werden. Könnte jemand mir helfen, die gespeicherte Prozedur auszuführen, um Werte einzufügen?

Dies ist der Code, den ich die gespeicherte Prozedur zu erstellen:

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) 

Ich versuche, diese Abfrage auszuführen und prüfen, ob seine Arbeits an erster Stelle alle Codierungsfehler zu sehen.

ich versuchte, wie diese auszuführen:

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

Wenn dies ausgeführt wird, dieser Fehler auftritt:

Prozedur- oder Funktionsparameter abc_insert erwartet @f, die nicht zugeführt wurde.

+0

Bitte zeigen Sie uns, was Sie bereits getan haben und dann jemand aus der Gemeinde Ihnen helfen kann. – Gagan

+0

Können Sie den Code bitte teilen? –

+0

Ich hoffe, ich habe jetzt einen Sinn gemacht – Gee

Antwort

0

Die Variable @f DATETIME(16) ist vom falschen Typ,

sollte ist ganz einfach @f DATETIME

+0

Entschuldigung, ich habe Datetime nur ein Tippfehler hier verwendet – Gee

1

Sie müssen alle erforderlichen Parameter zu übergeben - das ist @queryaction erste, von sechs Werten. Sie sind zur Zeit nur in den sechs Werten senden - aber nichts für die Suche nach Aktion:

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

Sie müssen vorsehen, dass @queryaction Wert, auch!

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

Got it thank you :) – Gee

Verwandte Themen