如何在存储过程中插入多个值

时间:2018-07-03 06:50:10

标签: sql-server stored-procedures

我想插入3个表中的数据,以合并3个表中的某些属性。

我已经创建了一个存储过程,但是无法执行该存储过程。有什么想法吗?

create procedure InsertMultiplevalue  
    (@startDate datetime,
     @endDate   datetime,
     @startTime datetime,
     @endTime   datetime,
     @quantity  int,
     @name      varchar(100),
     @type      varchar(200),
     @price     decimal(6,2) )  
as  
begin  
    insert into Attraction 
    values(@name)  

    declare @orgEmail varchar(50) 

    insert into TicketType 
    values(@quantity, @price, @type)  

    declare @ticketID int  
    insert into ItemBooking 
    values(@startDate, @startTime, @endDate, @endTime)  

    declare @ItemBookingID int = @@identity
end 

我收到此错误:

  

信息213,级别16,状态1,过程InsertMultiplevalue,第14行[批处理开始第0行]
  列名或提供的值数与表定义不匹配。

2 个答案:

答案 0 :(得分:0)

确保您的插入语句“值”与将插入其中的表匹配。否则,您可能试图插入太多或非常少的值。 我建议先查看一下如何定义表,然后准备插入语句

答案 1 :(得分:-1)

在插入表时,如果不应该在其中提供列名(不包括身份列),则必须插入所有列值

insert into Attraction 
     (
        column names here
        Not null column names must be mandatory to insert data to table
     )
select
      column name values