簡體   English   中英

如何將數據插入到SQL Server中的垂直分區表中

[英]How to insert data into a vertically partitioned table in sql server

我在SQL Server中對表進行分區時遇到問題。 我有一個超過103列的表,其中只有20列經常使用,並且被許多表引用。

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

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

您可以使用存儲過程來封裝所有插入邏輯。

假設您有3個表共享相同的ID列,並且每個表都有其他列,那么您的存儲過程可能如下所示:

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演示和示例表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM