2

値を選択してテーブルに挿入するストアド プロシージャがあります。

SELECT 
    @uid = arf.uid, @report_format = arf.report_format,
    @report_serno = arf.report_serno
FROM 
    dbo.alert_report_format AS arf 
INNER JOIN
    dbo.users AS u ON arf.uid = u.serno 
INNER JOIN
    dbo.alert_reports AS ar ON arf.report_serno = ar.serno

テーブルに挿入:

INSERT INTO reports 
VALUES (NULL, @uid, @subject, @body, @report_format, 100, @report_serno, 0, NULL, 10, GETDATE()) 

選択には5つの値がありますが、最後に選択した値のみを別のテーブルに挿入すると、選択にあるすべての値をテーブルに挿入したいのですが、カーソルなしでこれを行うにはどうすればよいですか?

4

2 に答える 2

4

次のようなものを使用する必要があります

INSERT INTO MyTable(Column1, Column2,.... ColumnN)
SELECT C1,C2,... CN
FRom MyTable

他のテーブルからのデータの挿入をご覧ください

INSERT (Transact-SQL)もご覧ください。

于 2013-08-16T12:43:04.630 に答える
4

この方法を試してください:

INSERT INTO reports 
SELECT null,arf.uid, @subject, @body, arf.report_format,  100,arf.report_serno,0,NULL,10,GETDATE()
FROM dbo.alert_report_format AS arf 
INNER JOIN dbo.users AS u ON arf.uid = u.serno 
INNER JOIN dbo.alert_reports AS ar ON arf.report_serno = ar.serno
于 2013-08-16T12:43:14.867 に答える