Что у меня есть: У меня есть 3 таблицы, а именно CONTENT_MASTER
, Account_Master
и Content_Licenses
.Таблица Content_Licenses
используется для хранения лицензий каждого контента для разных учетных записей.Например, у меня есть содержимое под названием myOldContent
со следующими лицензиями для каждой учетной записи:
Table: Content_Licenses
CL_AccountID NoOfLicences
8 99
241 70
240 30
186 30
99 30
Что я хочу: Для приведенного ниже содержимого я хочу дать такое же количестволицензии для каждой учетной записи:
Table: CONTENT_MASTER
CM_ID CM_NAME
101 myNewContent1
102 myNewContent2
103 myNewContent3
Что я сделал: Я написал следующий запрос для этого:
--Assign New components ID here and execute the query.
DECLARE @NewComponentID int
--Give license to new components
INSERT INTO CONTENT_LICENSES
(CL_CM_ID
,CL_AccountID
,NoOfLicences)
SELECT
@NewComponentID --Want to fetch from CONTENT_MASTER table, instead of passing like this
,CL.CL_AccountID --Fetching from CONTENT_LICENSES table
,CL.NoOfLicences
FROM CONTENT_LICENSES CL
INNER JOIN CONTENT_MASTER ON CM_ID = CL.CL_CM_ID
WHERE CM_NAME = 'myOldContent'
Проблема Мне нужно выполнить этот запрос 3 раза, чтобы дать лицензии 3 новым компонентам (т. Е. Назначив идентификатор нового компонента и выполнив его).Есть ли альтернативный способ сделать это (без использования курсора)?