SQL Server: как передать таблицу данных в хранимую процедуру в качестве входного параметра? - PullRequest
1 голос
/ 25 февраля 2012

У меня есть таблица данных, которая заполнена в моем приложении некоторыми значениями, которые пользователь ввел в них через файл Excel.Моя среда приложения targer .net имеет 2.0, и я НЕ могу изменить его на 3.0 или 3.5, чтобы использовать функцию LINQ.

Итак, я должен отправить значения таблицы данных в хранимую процедуру и передать ихоперация соединения.

Это хорошее решение или нет?Если да, как я могу отправить свою таблицу данных в хранимую процедуру в качестве входного параметра?

Спасибо

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Используя табличные параметры, вы можете отправлять данные в хранимую процедуру SQLServer. Этот определяемый пользователем тип представляет собой определение структуры таблицы и совместим с SQLServer 2008 и последующими версиями.

Вы можете найти пример и дополнительную информацию, относящуюся к этому сообщению aritcle

1 голос
/ 25 февраля 2012

Large Complex: Для больших сложных данных я бы, вероятно, поместил ваши данные в файл * .csv (если это не так в Excel), используйте .Net, чтобы превратить их в таблицы #tempи затем в этом же соединении вызовите proc и убедитесь, что proc всегда знает, что нужно искать данные в таблицах #temp.BCP - это быстрый способ получить большие порции данных в SQLServer.

Средний размер: Если размер данных невелик, вы можете отформатировать его как XML и отправить его в протокол.,Вот краткий пример использования C # http://www.a2zdotnet.com/View.aspx?Id=107

Small Delimited: Для данных небольшого типа списка вы можете избежать отправки его в виде строки значений, разделенных запятыми.Это очень удобно при отправке списка идентификаторов в прок (http://blog.logiclabz.com/sql-server/split-function-in-sql-server-to-break-comma-separated-strings-into-table.aspx)

...