如何使用存储过程将当前日期插入表中?

时间:2013-03-28 11:07:40

标签: c# asp.net sql-server-2008

我有一个名为medium的表,并且有一个列名称介质名称和创建日期我创建了存储过程以插入特定于上面两个值。下面是我的存储过程

alter procedure insertmediumproc
    @MediumName varchar(50) ,@CreationDate datetime
as 
begin
    insert into medium  (MediumName, CreationDate) values(@MediumName,getdate())
end

当我尝试使用以下命令在表中插入值时:

exec insertmediumproc Nepali,getdate()

它显示如下错误: Msg 102,Level 15,State 1,Line 1 ')'附近的语法不正确。

3 个答案:

答案 0 :(得分:3)

如果您始终希望将当前日期作为CreationDate列的值,则可以使用表上的默认值并修改您的proc以将@mediumnamn作为参数。或者您可以将其修改为:

alter procedure insertmediumproc @MediumName varchar(50)
as begin
insert into medium (MediumName, CreationDate) values (@MediumName,getdate())
end

这样您就不必将日期作为参数发送。

答案 1 :(得分:1)

您忘记了Nepali

周围的引号
exec insertmediumproc 'Nepali', getdate()

你的插入语句应该是

insert into medium (MediumName, CreationDate) 
values (@MediumName, @CreationDate)

如果您只需要date,那么您可以将参数类型从datetime更改为date

答案 2 :(得分:1)

您遇到语法错误 - 您没有传递正确的VARCHAR - 您需要引用该值:

exec insertmediumproc 'Nepali',getdate()