1

3つのテーブルのグループに対してカスタムビューを作成しました。テーブルのようにビューを使用するアプリケーションで編集できるように、ビューを構成するにはどうすればよいですか?SQL ServerStudioExpressを使用しています。

4

2 に答える 2

5

SQL Serverのビューは更新可能ですが、制限があります(CREATE VIEW、Updatable Viewセクション)

  • UPDATE、INSERT、およびDELETEステートメントを含むすべての変更は、1つのベーステーブルからの列のみを参照する必要があります。
  • ビューで変更される列は、テーブル列の基になるデータを直接参照する必要があります。次のような他の方法で列を導出することはできません。
    • 集計関数:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR、およびVARP。
    • 計算。他の列を使用する式から列を計算することはできません。集合演算子UNION、UNION ALL、CROSSJOIN、EXCEPT、およびINTERSECTを使用して形成された列は、計算になり、更新もできません。
  • 変更される列は、GROUP BY、HAVING、またはDISTINCT句の影響を受けません。
  • TOPは、WITHCHECKOPTION句とともにビューのselect_statementのどこにも使用されません。

それ以外の場合は、INSTEADOFトリガーを使用する必要があります。

于 2010-06-22T00:44:43.103 に答える
2

ビューにINSTEADOFINSERTトリガーとINSTEADOFUPDATEトリガーを作成してから、トリガー内に挿入ステートメントと更新ステートメントを記述して、基になる3つのテーブルのデータを操作する必要があります。簡単な例があるこのMSDNの記事を参照してください。トリガー定義のコンテキスト内の特別なINSERTEDテーブルで、必要な編集値を見つけることができます。

于 2010-06-22T00:41:53.520 に答える