SQL Server 2008:マルチステートメントUDFはUDTを返すことができますか? [複製
質問
この質問にはすでに答えがあります:
マルチステートメントUDFが、return Param内で定義されているテーブルの代わりに、ユーザー定義のテーブルタイプを返す可能性はありますか?
だから:の代わりに:
CREATE FUNCTION MyFunc
(
@p1 int, @p2 char
)
RETURNS
@SomeVar TABLE
(
c1 int
)
AS
やりたい:
CREATE FUNCTION MyFunc
(
@p1 int, @p2 char
)
RETURNS
@SomeVar MyTableType
AS
この理由は、私の関数内で他の関数を呼び出し、myTableType UDTに渡す必要があるためです。たとえリターンテーブルタイプでまったく同じテーブル定義を定義していても、オペランドの衝突エラーがスローされます。
解決
私が思いつくことができる最善のことは、関数にローカルのタイプのテーブル変数を宣言し、コード全体でそれを使用することでした。次に、挿入を実行します...返信ステートメントの直前にパラメーターテーブルに選択します。
これまでのところ、ユーザー定義のタイプを避けました。彼らは有望に見えますが、どこでもデータ型を変更する代わりにタイプを1つの場所に変更する機能を備えていますが、これらのような問題のために生産性とメンテナンスに関しては決して提供されないようです。
所属していません StackOverflow