Я создал следующую процедуру, и каждый раз, когда я пытаюсь ее выполнить, я получаю сообщение об ошибке
Необходимо объявить скалярную переменную @ BatchId
По сути, все я пытаюсь вставить содержимое необработанной таблицы в основную таблицу с идентификатором пакета (созданным секвенсором) для всех вставленных строк. Это казалось достаточно простым, но не работает должным образом.
CREATE PROCEDURE [dbo].[usp_SessionsAppend]
@RawTable NVARCHAR(500)
AS
DECLARE @BatchId BIGINT, @SQLString NVARCHAR(MAX)
SET @BatchId = NEXT VALUE FOR [dbo].[BatchID]
SET @SQLString =
'INSERT INTO [Master].[Sessions] (
[ImportTimestamp]
,[TransactionId]
,[ParticpantId]
,[ProviderId]
,[ActivityDate]
,[Attended]
,[Minutes]
,[SurveyCompleted]
,[Instructor]
,[InstructorID]
,[ProgramCode]
,[BatchId]
)
SELECT
GETDATE() AS [ImportTimeStamp]
,NEWID() AS [TransactionId]
,[ParticpantId]
,[ProviderId]
,[ActivityDate]
,[Attended]
,[Minutes]
,[SurveyCompleted]
,[Instructor]
,[InstructorID]
,[ProgramCode]
,@BatchId
FROM' + @RawTable
EXECUTE (@SQLString)
Буду признателен за любую помощь или понимание.