4

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

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

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

exec insertmediumproc Nepali,getdate()

它在下面显示错误:消息 102,级别 15,状态 1,第 1 行 ')' 附近的语法不正确。

4

3 回答 3

3

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

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

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

于 2013-03-28T11:12:17.790 回答
1

你忘了周围的报价Nepali

exec insertmediumproc 'Nepali', getdate()

你的插入语句应该是

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

如果您只需要 adate那么您可以将参数类型从更改datetimedate

于 2013-03-28T11:09:05.900 回答
1

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

exec insertmediumproc 'Nepali',getdate()
于 2013-03-28T11:09:25.020 回答