Можно ли создать функцию, которая принимает таблицу в качестве параметра и возвращает таблицу? - PullRequest
0 голосов
/ 29 июля 2009

Мне нужно создать функцию, которая принимает таблицу (или табличную переменную) в качестве входного параметра и возвращает значение таблицы в качестве параметра. Возможно ли это со следующими ограничениями:

  • SQL Server 2005
  • Функция CLR не является опцией (должна быть только для TSQL)

Будет полезен любой пример кода в качестве начального.

Ответы [ 2 ]

3 голосов
/ 29 июля 2009

Нельзя использовать типы параметров таблицы до SQL Server 2008.

Один из вариантов - использовать xml для передачи таблицы и XPath для ее анализа.

0 голосов
/ 29 июля 2009

Я пытался, но нет, @gbn правильно, вы не можете в SQL Server 2005

вот моя попытка:

CREATE FUNCTION dbo.TestTable
(
    @InputTable  table (RowID int, DataValue varchar(10))
)
RETURNS
table (RowID int, DataValue varchar(10))
AS
    SELECT * FROM @InputTable ORDER BY 1 DESC
RETURN 
go

DECLARE @t table (RowID int, DataValue varchar(10))

INSERT INTO @t VALUES (3,'cccc')
INSERT INTO @t VALUES (2,'bbbb')
INSERT INTO @t VALUES (1,'aaaa')

select * from @t
select * from dbo.TestTable(@t)

вот ошибки:

Msg 156, Level 15, State 1, Procedure TestTable, Line 3
Incorrect syntax near the keyword 'table'.
Msg 1087, Level 15, State 2, Procedure TestTable, Line 8
Must declare the table variable "@InputTable".
Msg 1087, Level 15, State 2, Line 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...