Passando os parâmetros avaliados da tabela listas para os procedimentos armazenados SQL
O cenário de preencher uma tabela de banco de dados com vários itens associados a um registro específico é um desafio comum na manipulação de dados. Embora as abordagens tradicionais envolvam valores de parâmetros de passagem iterativamente ou usando manipulação de string, uma solução mais eficiente está disponível. 2008 Introduziu parâmetros com valor de tabela, que permitem a passagem de uma coleção de dados estruturados como um parâmetro para um procedimento armazenado. Isso elimina a necessidade de manipulação complexa de string ou manuseio de parâmetros iterativos. ( @ReportId Int, @Items como itemList-Tipo de tabela definido pelo usuário ) COMO COMEÇAR Insira no relatório (reportId, itemId) Selecione @ReportId, Eu ia De @items End
TIPO DE TABELA CUDDADO PARA ITEM LISTE
para criar um tipo de tabela personalizado para a lista de itens, execute a seguinte instrução SQL:
Criar Type ItemList como tabela ( Id int )
ALTER PROCEDURE AddItemsToReport ( @ReportId int, @Items AS ItemList -- User-defined table type ) AS BEGIN INSERT INTO ReportItem (ReportId, ItemId) SELECT @ReportId, Id FROM @Items ENDPassando o parâmetro valuado de c#
No seu código C#, crie uma instância do tipo de tabela personalizado:
var itemList = new ItemList (); itemlist.rows.add (1); itemlist.rows.add (2); itemlist.rows.add (3);
CREATE TYPE ItemList AS TABLE ( Id int )
dbCommand.addinparameter (dbCommand, "itens", dbtype.object, itemlist) ; Parâmetros
desempenho melhorado, evitando várias viagens de redonda ao banco de dados. digitando fortemente os dados de entrada.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3