У меня есть оператор выбора, например
SELECT
[TaskStatusName],
[TaskTypeName],
[TaskId]
FROM
[TaskStatusAudit]
WHERE
[TaskId] IN
(
SELECT
[T].[TaskId]
FROM
[Task] AS [T]
WHERE
[T].[DesignKey] = @LastDesignKeyOfProject
AND
[TaskStatusId] != @PendingStatus
AND
[TaskStatusId] != @CompletedStatus
)
Ниже этого у меня есть оператор вставки:
INSERT INTO [TaskStatusAudit]
(
[TaskStatusAuditId],
[Date],
[EmpGuid],
[TaskStatusName],
[TaskTypeName],
[TaskId]
)
VALUES
(
@TaskStatusName,
@TaskTypeName,
@TaskId
)
У меня вопрос, как я могу выполнить это значение вставки foreach или строку I?получаю в моем первом выборе?С уважением
ОБНОВЛЕНИЕ
Как комментарии ниже, я пытаюсь сделать так:
DECLARE @TaskStatusName VARCHAR(255)
, @TaskTypeName VARCHAR(255)
, @TaskId UNIQUEIDENTIFIER;
--Assigning pararameters
SELECT
@TaskStatusName = 'COMPLETED'
, @TaskTypeName = [TaskTypeName]
, @TaskId = [T].[TaskId]
FROM [TaskStatusAudit] AS [TSA]
INNER JOIN [Task] AS [T] ON [T].[DesignKey] = @LastDesignKeyOfProject
AND [T].[TaskStatusId] != @PendingStatus
AND [T].[TaskStatusId] != @CompletedStatus
-- using parameters to insert
INSERT INTO [TaskStatusAudit]
(
[TaskStatusAuditId]
, [Date]
, [EmpGuid]
, [TaskStatusName]
, [TaskTypeName]
, [TaskId]
)
VALUES
(
NEWID()
, @Today
, @CreatedBy
, @TaskStatusName
, @TaskTypeName
, @TaskId
)
Я запускаю его, но он вставляет только одну строку вместо нескольких.Что я делаю не так?