Передать всю таблицу в качестве параметра SP в C#

#c# #sql-server #sql-server-2005 #stored-procedures

#c# #sql-server #sql-server-2005 #хранимые процедуры

Вопрос:

Я хочу передать всю таблицу как DS.TABLE(0) в качестве параметра хранимой процедуры.

Пожалуйста, объясните, как я могу это сделать.

Я использую SQL Server 2005

Комментарии:

1. Может быть, вы можете объяснить, что вы пытаетесь сделать? Как заполняется таблица?

Ответ №1:

В SQL Server 2008 есть табличные параметры, только для этого, но поскольку вы используете SQL Server 2005, вы не можете их использовать.

Возможность передать в XML и проанализировать его на сервере. Это дорогостоящая операция, поэтому вам нужно протестировать.

Вы можете найти много информации о том, как передавать списки и массивы в SQL Server 2005 здесь (Эрланд Соммарског), в комплекте с производительностью и другими сравнениями.

Комментарии:

1. @Ajay — Я полагаю, что я ответил на ваш вопрос. Вы не сказали «не говорите мне, что я уже знаю», и не сказали, что вы уже знаете. В статье, на которую я дал ссылку, подробно описано несколько способов сделать то, что вам нужно.

Ответ №2:

Не существует способа передать экземпляр .Net Framework DataTable в хранимую процедуру SQL Server 2005. Это возможно в SQL Server 2008.

http://msdn.microsoft.com/en-us/library/bb510489 (v=SQL.100).aspx

Комментарии:

1. Вы должны уточнить, что нет никакого способа … на SQL server 2005, но это определенно возможно на SQL server 2008

2. Я знаю, что это возможно в sql server 2008, но я хочу знать, возможно ли это в SQL Server 2005

3. Вот почему я заявил — «Нет способа». Очевидно, что это не тот ответ, который вы хотели, но это ответ.