"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como os parâmetros com valor de tabela podem melhorar o desempenho do procedimento armazenado SQL e a simplicidade de código?

Como os parâmetros com valor de tabela podem melhorar o desempenho do procedimento armazenado SQL e a simplicidade de código?

Postado em 2025-02-26
Navegar:938

How Can Table-Valued Parameters Improve SQL Stored Procedure Performance and Code Simplicity?

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
END
Passando 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.

            
Tutorial mais recente Mais>

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