2009-07-29 3 views
0

テーブル(またはテーブル変数)を入力パラメータとして受け取り、テーブル値をパラメータとして返す関数を作成する必要があります。これは、次の制約で可能です:テーブルをパラメータとして取り、テーブルを返す関数を作成できますか?

  • SQL Server 2005の
  • CLR機能はオプションではありません

スターターとして任意のコード例が参考になる(TSQL専用でなければなりません)。あなたは、SQL Serverのテーブルまでパラメータタイプを使用することはできません

答えて

3

1つのオプションは、それを解析するために、テーブルとXPathに渡すためにXMLを使用することです。

0

私がしようとしたが、いや、@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 
関連する問題