2

でのテーブルの分割に問題がありますSQL Server。103 列を超えるテーブルがあり、そのうち 20 列のみが非常に頻繁に使用され、多数のテーブルから参照されています。

テーブルには何千もの行が含まれているため、テーブル データを異なるファイル グループに保存するために、垂直パーティションを作成し、テーブルを複数のテーブルに分割しました。

これらのテーブルを結合してビューも作成しました。INSTEAD OFそして今、トリガーを使用せずにデータを別のテーブルに挿入するにはどうすればよいですか?

4

1 に答える 1

1

ストアド プロシージャを使用して、すべての挿入ロジックをカプセル化できます。

たとえば、同じ ID 列を共有する 3 つのテーブルがあり、それぞれに追加の列がある場合、ストアド プロシージャは次のようになります。

CREATE PROCEDURE usp_Insert
(
    @Val1 VARCHAR(5)
  , @Val2 VARCHAR(5)
  , @Val3 VARCHAR(5)
)
AS 
BEGIN

    DECLARE @id INT;

    INSERT INTO Table1 (Col1) VALUES (@Val1);

    SELECT @id = SCOPE_IDENTITY();

    INSERT INTO Table2 (ID, Col2) VALUES (@id, @Val2);
    INSERT INTO Table3 (ID, Col3) VALUES (@id, @Val3);

END
GO

SQLFiddle 作業デモとサンプル テーブル

于 2013-10-25T12:15:19.277 に答える