宛先テーブルのシーケンス番号フィールドの最大数を増やしながら、テーブルに挿入されたすべての行の一部の列を別のテーブルに転送するトリガーを作成したいと考えています。このフィールドは自動インクリメントではありませんが、主キー フィールドです。
私が行っていたのは、宛先テーブルで最大シーケンス番号を見つけ、インクリメントしてから新しい値を挿入することでした。データが一度に行ごとに挿入される場合、これはうまくいきました。しかし、1 つのクエリから多くの行が挿入された場合、シーケンス番号をインクリメントするにはどうすればよいでしょうか? サンプルの問題は次のとおりです。
insert into [mssql].mssql.dbo.destination_table (name,seq_no)
select name,?
from inserted
一度に数千行を挿入することもできます。
seq_no は複合主キーの一部です。たとえば、データが別の名前で挿入された場合、seq_no は異なります。(この要件は、主キーの一部を考慮せずに seq_no をインクリメントできる場合に考慮する必要があります)