我在SQL Server
中对表进行分区时遇到问题。我有一个超过103列的表,其中只有20个非常频繁使用,并被许多表引用。
由于该表包含数千行,因此我创建了一个垂直分区,并将该表划分为多个表,以便将表数据保存在不同的文件组中。
我还通过加入这些表创建了一个视图。现在,如何在不使用INSTEAD OF
触发器的情况下将数据插入到不同的表中?
答案 0 :(得分:1)
您可以使用存储过程来封装所有插入逻辑。
如果您有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