que pasa las listas de parámetros valorados en la tabla a los procedimientos almacenados SQL
el escenario de poblar una tabla de base de datos con múltiples elementos asociados con un registro específico IS es Un desafío común en la manipulación de datos. Mientras que los enfoques tradicionales implican que pase iterativamente los valores de los parámetros o el uso de la manipulación de la cadena, hay una solución más eficiente disponible.
: Parámetros valorados en la tabla en SQL Server 2008
SQL SQL 2008 introdujo parámetros valorados en la tabla, que permiten pasar una colección de datos estructurados como parámetro a un procedimiento almacenado. Esto elimina la necesidad de manipulación de cadenas complejas o manejo de parámetros iterativos.
En el código proporcionado, el procedimiento almacenado "AddItemStoreport" se puede actualizar para aceptar un parámetro valorado en la tabla:
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
Tipo de tabla personalizado para la lista de elementos
para crear un tipo de tabla personalizada para la lista de elementos, ejecute la siguiente instrucción SQL:
CREATE TYPE ItemList AS TABLE ( Id int )
Pasando el parámetro de Table Valuado de C#
en su código C#, cree una instancia del tipo de tabla personalizada:
var itemList = new ItemList(); itemList.Rows.Add(1); itemList.Rows.Add(2); itemList.Rows.Add(3);
Entonces, pase el parámetro valorado en la tabla al procedimiento almacenado:
dbCommand.AddInParameter(dbCommand, "Items", DbType.Object, itemList);
beneficios de la tabla Parámetros
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3