2013-10-25 32 views
2

我在SQL Server中分區表有問題。我有一張超過103列的表格,其中只有20列被非常頻繁地使用,並且被許多表引用。如何將數據插入到sql server中的垂直分區表中

由於該表包含數千行,因此我創建了一個垂直分區並將表分成多個表,以便將表數據保存在不同的文件組中。

我也通過加入這些表創建了一個視圖。現在,如何在不使用INSTEAD OF觸發器的情況下將數據插入到不同的表中?

+1

存儲過程?而不是在視圖上觸發? –

+0

我不想使用'INSTEAD OF'觸發器或任何觸發器。使用商店程序?你能否給我提供一些信息。 –

回答

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 Working demo and sample tables

相關問題