Во всех версиях, предшествующих SQL Server 2008, было сложно передавать много параметров подпрограмме. В подобных случаях вам нужно было использовать временные таблицы, добавлять в них значения, а затем вызывать вашу подпрограмму. Начиная с SQL Server 2008, вы можете использовать табличные параметры для упрощения этой задачи. Эти параметры используются для передачи результирующего набора соответствующей подпрограмме.
В примере 8.19 показано использование табличного параметра.
В примере 8.19 вначале объявляется пользовательский тип departmentType в качестве таблицы. Это означает, что данный тип является типом данных table, следовательно, в него можно помещать строки. В процедуре insertProc задана переменная @Dalias типа данных departmentType. Предложение readonly указывает, что содержимое этой табличной переменной не может быть изменено. В последующем пакете данные добавляются в табличную переменную, после чего выполняется процедура. Процедура при своем выполнении добавляет строки из табличной переменной во временную таблицу #daiiasTabie. Содержимое временной таблицы будет следующим:
Использование табличных параметров дает вам такие преимущества:
♦ это упрощает программную модель подпрограммы;
♦ это уменьшает объем данных, передаваемых на сервер, и данных, получаемых с сервера;
♦ результирующая таблица может иметь произвольное количество строк.
В следующем разделе показано, как табличная функция может быть использована с оператором apply.