dポイントプレゼントキャンペーン実施中!

AccessのADPからSQLへアクセスしているのですが

↓のテーブル値関数(Q_仕訳明細)をレコードソースに指定してある
フォームがあるのですが、コントロールの内容を変更してレコードを
移動させると、テーブルに変更した内容が反映されます。

そう言う物であれば、ビューよりも利用価値があると思うのですが、
私が変な設定をしているのでしょうか?

ALTER FUNCTION [dbo].[Q_仕訳明細] ()
RETURNS TABLE
AS
RETURN
SELECTTOP 100 PERCENT 請求番号, 行番, 部門コード,勘定科目コード, 補助科目コード, 摘要, 金額, 税区分
FROMT_仕訳明細
ORDER BY請求番号, 行番

A 回答 (2件)

私も実際にそういう使い方をしたことはありませんでしたが、確かに


インライン関数はビューと同じ基準で更新可能な内容であれば、更新できるとmsdnにも書かれていました。
従って、その使い方は別に変ではありません。
(が、パラメータを切らない限りはビューと比べてうまみもありません)

ただし、この使い方はあくまでもインライン関数(戻り値にテーブル変数を使わずダイレクトにリターンする)のみ可能ですので、その点だけはご留意ください。
    • good
    • 0
この回答へのお礼

意図した訳ではなく、アップサイジングされたフォームのレコードソースのクエリがテーブル値関数に置き換えられており、そのまま訂正が出来たので???状態で質問しました。

先日お聞きして駄目だったストアドへの更新をこれで検討してみます。

ありがとうございました。

お礼日時:2008/11/17 13:42

一般論ですが、Viewは固定的な参照を行う目的で作成されます。


関数は引数を与えると結果が返されるという動的参照を目的とします。
掲題の関数は引数が無く、常に一定の結果を返すという点では前者に
近い感覚です。
Viewはの利点は他のDBシステムとの互換性が高いということです。
DBシステムの移行を視野に入れると、固定的な結果しか返さない
関数よりは利用価値が高いと判断します。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

パラメータを指定してレコードが絞れるので、使い道を色々検討して見たいと考えています。

お礼日時:2008/11/17 13:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す