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 ENDbenutzerdefinierte 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 ENDPASSION 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 ENDVorteile von Tabellenwert Parameter
verbesserte Leistung, indem mehrere Rundenfahrten zur Datenbank vermieden wurden. Durch starkes Tippen der Eingabedaten.
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