次の T-SQL ステートメントは[key]
、一意であるMAX
必要があり、ステートメント内の呼び出しがSELECT
1 回しか呼び出されないように見えるため、機能しません。言い換えれば、キー値を 1 回だけインクリメントし、その値を何度も挿入しようとしています。誰にも解決策がありますか?
INSERT INTO [searchOC].[dbo].[searchTable]
([key],
dataVaultType,
dataVaultKey,
searchTerm)
SELECT (SELECT MAX([key]) + 1 FROM [searchOC].[dbo].[searchTable]) AS [key]
,'PERSON' as dataVaultType
,[student_id] as dataVaultKey
,[email] as searchTerm
FROM [JACOB].[myoc4Data].[dbo].[users]
WHERE [email] != '' AND [active] = '1'
AND [student_id] IN (SELECT [userID] FROM [JACOB].[myoc4Data].[dbo].[userRoles]
WHERE ([role] = 'STUDENT' OR [role] = 'FACUTLY' OR [role] = 'STAFF'))