如何在 sql 服务器中输入票证的详细信息?

how to enter the details of a ticket in sql server?

我需要创建一张带有详细信息的工单。我从 visual studio 向 sql 发送一个字符串列表或字符串数​​组,其中包含创建票证的数据。详细信息的数量是可变的,我的问题是如何在 sql 服务器中执行 x 数量的详细信息。

我正在使用 visual studio 2017 和 sql 服务器 2008。

GO
create procedure newTicketWithDetails
@idProduct int,
as
BEGIN TRANSACTION 
BEGIN TRY

/*
idTicket is identity
idTicket and dateTicket are PK
*/

insert into Tickets(idTicket,dateTicket))
values (GETDATE());

insert into TicketsDetails(idTicket,dateTicket,idProduct) 
values(IDENT_CURRENT('Tickets'),GETDATE(),@idProduct); 


/*
...
...        x inserts here
...
*/

COMMIT TRANSACTION 

END TRY

BEGIN CATCH

ROLLBACK TRANSACTION
SELECT @@ROWCOUNT

END CATCH

类似的事情就是我想要做的。 我应该如何使用票证数据遍历该数组,或者我应该如何从 visual studio?

发送详细信息

将 XML 字符串中的参数作为单个参数发送。然后在服务器端使用 XML 解析从 XML 字符串中获取值并在 table(s).

中插入 NON NULL 票证详细信息

参考:XML as parameter in stored procedure (sql server)

这将为您节省大量客户端代码,因为您必须发送单个参数。