如何在 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)
这将为您节省大量客户端代码,因为您必须发送单个参数。
我需要创建一张带有详细信息的工单。我从 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)
这将为您节省大量客户端代码,因为您必须发送单个参数。