Sie verwalten eine Datenbank mit den Tabellen Invoice und InvoiceDetails. Jede Rechnung kann mehrere Datensätze enthalten.
Benutzer aktualisieren die InvoiceDetails-Tabelle mithilfe einer .NET-Webanwendung. Die Anwendung ruft Datensätze aus beiden Tabellen ab und aktualisiert die Tabellen durch Ausführen einer Inline-Aktualisierungsanweisung.
Bei der Aktualisierung von Datensätzen in der Anwendung tritt bei Benutzern eine geringe Leistung auf. Die Lösung muss folgende Anforderungen erfüllen:
* Muss eine gespeicherte Prozedur verwenden.
* Darf keine Inline-Update-Anweisungen verwenden
* Muss einen Tabellenwert-Parameter verwenden.
* Muss die gespeicherte Prozedur aufrufen, um alle Datensätze zu aktualisieren.
Sie müssen die Leistung optimieren.
Welche drei Aktionen sollten Sie nacheinander ausführen? Verschieben Sie zum Beantworten die entsprechenden Aktionen aus der Liste der Aktionen in den Antwortbereich und ordnen Sie sie in der richtigen Reihenfolge an.

Reveal Solution
Discussion
Correct Answer:

Explanation

Box 1: Create a user-defined table type...
Table-valued parameters are declared by using user-defined table types. You can use table-valued parameters to send multiple rows of data to a Transact-SQL statement or a routine, such as a stored procedure or function, without creating a temporary table or many parameters.
Box 2: ..read-only input parameter.
Table-valued parameters must be passed as input READONLY parameters to Transact-SQL routines.
Box 3:
Example
The following example uses Transact-SQL and shows you how to create a table-valued parameter type, declare a variable to reference it, fill the parameter list, and then pass the values to a stored procedure.
USE AdventureWorks2012;
/* Create a table type. */
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
/* Create a procedure to receive data for the table-valued parameter. */ CREATE PROCEDURE dbo. usp_InsertProductionLocation
@TVP LocationTableType READONLY
Etc.
/* Declare a variable that references the type. */
DECLARE @LocationTVP AS LocationTableType;
/* Add data to the table variable. */
INSERT INTO @LocationTVP (LocationName, CostRate)
SELECT Name, 0.00
FROM AdventureWorks2012.Person.StateProvince;
/* Pass the table variable data to a stored procedure. */
EXEC usp_InsertProductionLocation @LocationTVP;
GO
References:
https://docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine?vie