как ввести реквизиты билета в sql server? - PullRequest
1 голос
/ 21 октября 2019

Мне нужно создать тикет с его деталями. Из Visual Studio я посылаю список строк или массив строк в sql с данными для создания заявки. Количество деталей является переменным, мой вопрос заключается в том, как выполнить это количество деталей x на сервере sql.

Я использую Visual Studio 2017 и SQL Server 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?

1 Ответ

1 голос
/ 21 октября 2019

Отправьте ваши параметры в виде строки XML как один параметр. Затем используйте синтаксический анализ XML на стороне сервера, чтобы получить значения из строки XML и вставить в свои таблицы (ы) сведения о билете NON NULL.

См .: XML как параметр в хранимой процедуре (сервер sql)

Это сэкономит вам много кода на стороне клиента, поскольку вам когда-либо придется отправлять один параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...