8

1 つのマスター テーブルといくつかの小さなテーブルがあります。

  • MasterテーブルにはC1 | C2 | C3 | C4 | C5 |
  • 小さなテーブルにはC1 | C2 | C3 |

また(表@C1の C1 の値と一致する値を持つ変数。Master

列名は両方のテーブルで一致します。Masterテーブル ( C1C2、および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

助けてください

ありがとうございました

4

3 に答える 3

11

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
于 2013-01-07T22:05:56.680 に答える
3

あなたは近くにいました!C1、C2、および C3 が同じデータ型である限り、これは機能するはずです。

Create proc 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
END
于 2013-01-07T22:05:54.453 に答える