我创建了一个表和存储过程,通过GUI在reportnet上将数据插入到表中,但是没有插入数据,所以我回来检查插入存储过程中是否有任何错误。
我尝试将存储过程作为
执行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 :(得分:2)
您需要首先传递所有必需的参数 - @queryaction
,然后传递六个值。您目前仅发送六个值 - 但查询操作没有任何内容:
EXEC dbo.abc_insert 'a', 'b', 'c', 'd', 'e', 'f'
您还需要提供@queryaction
值!
EXEC dbo.abc_insert 'insert', 'a', 'b', 'c', 'd', 'e', 'f'
答案 1 :(得分:0)
变量@f DATETIME
类型错误,
应该很简单import time
def printScore(score):
print("The score is {}".format(score))
def processGame(score,callback):
time.sleep(3)
callback(5)
processGame(5,printScore)
答案 2 :(得分:0)
declare @dt as datetime = getdate()
EXEC abc_insert 'insert', 'a','b', 'c','d','e',@dt
注意:在创建脚本中,@ f DATETIME(16)应该为@f DATETIME