Übergabe von Tabellenwertparameterlisten an gespeicherte SQL-Prozeduren
Das Szenario des Auffüllens einer Datenbanktabelle mit mehreren Elementen, die einem bestimmten Datensatz zugeordnet sind, ist eine häufige Herausforderung bei der Datenmanipulation. Während herkömmliche Ansätze die iterative Übergabe von Parameterwerten oder die Verwendung von Zeichenfolgenmanipulation beinhalten, ist eine effizientere Lösung verfügbar.
Lösung: Tabellenwertparameter in SQL Server 2008
SQL Server 2008 wurden Tabellenwertparameter eingeführt, die die Übergabe einer Sammlung strukturierter Daten als Parameter an eine gespeicherte Prozedur ermöglichen. Dadurch entfällt die Notwendigkeit einer komplexen Zeichenfolgenmanipulation oder iterativen Parameterbehandlung.
Im bereitgestellten Code kann die gespeicherte Prozedur „AddItemsToReport“ aktualisiert werden, um einen Tabellenwertparameter zu akzeptieren:
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
Benutzerdefinierter Tabellentyp für die Artikelliste
Um einen benutzerdefinierten Tabellentyp für die Artikelliste zu erstellen, führen Sie die folgende SQL aus Anweisung:
CREATE TYPE ItemList AS TABLE ( Id int )
Übergabe von Tabellenwertparametern aus C#
Erstellen Sie in Ihrem C#-Code eine Instanz des benutzerdefinierten Tabellentyps:
var itemList = new ItemList(); itemList.Rows.Add(1); itemList.Rows.Add(2); itemList.Rows.Add(3);
Übergeben Sie dann den Tabellenwertparameter an den gespeicherten Parameter Verfahren:
dbCommand.AddInParameter(dbCommand, "Items", DbType.Object, itemList);
Vorteile von Tabellenwertparametern
Das obige ist der detaillierte Inhalt vonWie können Tabellenwertparameter die Leistung gespeicherter SQL-Prozeduren und die Einfachheit des Codes verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!