插入多行作为参数 - 存储过程

时间:2014-12-31 17:02:54

标签: sql-server vb.net stored-procedures

我有两个表,Invoice和Items。

我使用存储过程将数据插入发票表。发票应该有多个项目。以下是我用于在发票表中插入行的存储过程。

@InvoiceDate date,
@Vno int,
@Vdate date,
@ClientId int,
@ItemId int,
@Discount bigint,
@InvoiceID int,
@CreditAmount bigint,
@CreditDate date,
@CreditType varchar(15),
@Quantity int,
@InvoiceQuantity int

AS
Insert Invoice 
        ([Invoice Date], [Voucher No], [Voucher Date], ClientID, ItemId, Discount, Quantity) 
        VALUES (@InvoiceDate, @Vno, @Vdate, @ClientID, @ItemId, @Discount, @InvoiceQuantity)
        SET @InvoiceID = SCOPE_IDENTITY()            

Insert Credits 
               (CreditAmount,        CreditDate,    ClientID,    [Invoice Id],    [Credit Type]) 
VALUES (@CreditAmount, @CreditDate, @ClientID, @InvoiceID,    @CreditType)

update Items set ItemQuantity = ItemQuantity - @Quantity where ItemID = @ItemId 

问题是我无法在我的表中插入多个项目(我为此目的使用参数'@ItemId')。我不能为'ItemId'使用多个参数因为项目数量不同而用户将在运行时选择项目。

我正在使用SQL Server数据库。此存储过程正在VB.Net中的Windows窗体应用程序中使用。

0 个答案:

没有答案