我有一张主 table 和几张较小的 table 。
Master
表有C1 | C2 | C3 | C4| C5 |
- 一张小 table 有
C1 | C2 | C3 |
还有@C1
(一个变量,其值与Master
表中C1 的值相匹配。
两个表的列名都匹配。我想创建一个存储过程,将 Master
表(C1
、C2
和 C3
)中的值插入到较小的表(C1、C2、C3
)。
我的努力:
Create proc Schema.Proc
(@C1 int)
AS
BEGIN
INSERT INTO SmallTable
(C1, C2, C3) --- Columns of smaller table
Values (SELECT C1, C2, C3 ---Columns of Master table
FROM MasterTable)
WHERE C1 = @C1 --- Where value of C1 of Master table matches the value of @C1
END
请帮忙
谢谢
最佳答案
您需要使用 INSERT INTO ... SELECT .....
语法 - 不涉及 VALUES
关键字:
CREATE PROCEDURE Schema.Proc
(@C1 int)
AS
BEGIN
INSERT INTO SmallTable(C1, C2, C3) --- Columns of smaller table
SELECT C1, C2, C3 ---Columns of Master table
FROM MasterTable
WHERE C1 = @C1 --- Where value of C1 of Master table matches the value of @C1
END
关于sql - 用于将数据从一个表插入到具有相同列名的另一个表的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14204834/