прохождение списков с оценкой таблицы параметров в SQL-хранимых процедурах
сценарий заполнения таблицы базы данных с несколькими элементами, связанными с конкретной записью, является Общая задача в манипулировании данными. В то время как традиционные подходы включают в себя итеративно передачу значений параметров или использование манипуляции с строками, доступно более эффективное решение.
]Решение: Таблица, оцененные параметры в SQL Server 2008
SQL Server В 2008 году введены табличные параметры, которые позволяют передавать сбор структурированных данных в качестве параметра хранимой процедуре. Это устраняет необходимость в сложных строковых манипуляциях или обработке итеративных параметров. ( @Reportid int, @Items как itemlist-пользовательский тип таблицы ) КАК НАЧИНАТЬ Вставьте в Reportitem (ReportId, ItemId) Выберите @ReportId, Идентификатор От @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]
] Чтобы создать тип пользовательского таблицы для списка элементов, выполните следующее оператор SQL: Create Type Itemlelist как таблица ( Id int )
проходящий табличный параметр из C#
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
в вашем коде C#, создайте экземпляр типа пользовательского таблицы: 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);
Преимущества таблицы Параметры
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
улучшенные производительность, избегая многочисленных круглых поездок в базу данных. Сильно вводив входные данные.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3