我试图在SQL Server 2008中创建一个存储过程,根据解析器,语法是OK。然而,当我尝试执行存储过程,并通过实际值,以下错误出现:SQL服务器 - 存储过程
消息201,级别16,状态4,程序 SaveOneTimeDonation,行0
过程或函数“SaveOneTimeDonation”期望提供的参数'@donation'不是 。
自叹不如,该数据实际上是插入到表中,所以我不知道为什么它会显示这个错误。
我怎么能解决这个问题吗?以下是代码:
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[SaveOneTimeDonation]
@donation float,
@date nvarchar
AS
INSERT INTO OneTime_Trans(Donation, Trans_Date) VALUES (@donation, @date)
exec SaveOneTimeDonation
究竟如何你打SaveOneTimeDonation?另外为什么SaveOneTimeDonation自己调用? – UnhandledExcepSean 2012-02-28 13:23:43
注意:如果它是'@ date' - 为什么它被定义为'nvarchar'数据类型?另外:通过不指定任何**长度**,你会得到一个'nvarchar(1)' - 1个字符长........ – 2012-02-28 14:38:18
如果它是一个日期 - 定义它是这样的! '@date DATE' - 如果它是一个可变长度的字符串,** define **一个长度:'@date NVARCHAR(20)'或任何适合的 – 2012-02-28 14:39:06