INSERT INTO [log].[BatchEvent](BatchId, SeverityId, Date, Message) VALUES((SELECT [Id]
FROM [log].[Batch] WHERE [EndDate] IS NULL), @SeverityId, @Date, @Message)
这是我要执行的查询。但是问题在于,只有从ID
表返回一个Batch
时,它才有效。
如果从BatchEvent
返回了多个ID,如何在Batch
中插入多行?
答案 0 :(得分:1)
使用不带values
关键字的插入选择。您可以从选择中返回其他值作为'fake'列,因为选择需要具有与insert子句中指定的列数相同的列数:
INSERT INTO [log].[BatchEvent](BatchId, SeverityId, Date, Message)
SELECT [Id], @SeverityId, @Date, @Message FROM [log].[Batch] WHERE [EndDate] IS NULL