„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie können Parameter für Tabellenwerte die Leistung und die Einfachheit der Codes-Einfachheit verbessern?

Wie können Parameter für Tabellenwerte die Leistung und die Einfachheit der Codes-Einfachheit verbessern?

Gepostet am 2025-02-26
Durchsuche:375

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

platzieren die Parameterlisten der Tabelle an SQL Stored Procedures

Das Szenario der Bevölkerung einer Datenbanktabelle mit mehreren Elementen, die mit einem bestimmten Datensatz zugeordnet sind Eine häufige Herausforderung bei der Datenmanipulation. Während traditionelle Ansätze die iterativen Übergabe von Parameternwerten oder die Verwendung von String-Manipulation beinhalten, ist eine effizientere Lösung verfügbar.

Lösung: Parameter mit Tabellenwert in SQL Server 2008

SQL Server 2008 eingeführte Parameter für Tabellen, die es ermöglichen, eine Sammlung strukturierter Daten als Parameter an ein gespeichertes Verfahren zu übergeben. Dadurch wird die Notwendigkeit einer komplexen String-Manipulation oder iterativen Parameterbearbeitung beseitigt.

In dem angegebenen Code kann das gespeicherte Prozedur "AddItemstorePort" aktualisiert werden ( @Reportid int, @Items als ElementList-Benutzerdefinierter Tabellentyp ) ALS BEGINNEN In ReportItem einfügen (ReportId, ItemID) Wählen Sie @Reportid, Ausweis Von @Items End

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
benutzerdefinierte Tabelle Typ für Elementliste

, um einen benutzerdefinierten Tabellen -Typ für die Elementliste zu erstellen, die folgende SQL -Anweisung ausführen:

type erstellen Itemliste als Tabelle ( 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
PASSION TABLE-VALUED-Parameter aus c#

in Ihrem c# Code, erstellen Sie eine Instanz des benutzerdefinierten Tabellen-Typs:

var itemlist = new ItemList (); itemlist.rows.add (1); itemlist.rows.add (2); itemlist.rows.add (3);

var itemList = new ItemList();
itemList.Rows.Add(1);
itemList.Rows.Add(2);
itemList.Rows.Add(3);

dbcommand.addinparameter (dbcommand, "items", dBttype.object, itemlistlist) ;

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
Vorteile von Tabellenwert Parameter

verbesserte Leistung, indem mehrere Rundenfahrten zur Datenbank vermieden wurden. Durch starkes Tippen der Eingabedaten.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3