Я вставляю строку в удаленный сервер MS SQL и хочу получить идентификатор вставленной строки. Я использую sp_execute sql и передаю входные параметры. Строка вставляется, но параметр OUTPUT имеет значение null. Любая идея, почему выходной параметр в NULL:
DECLARE @QualificationId INT, @CourseId INT, @ModuleGrade INT, @SQLString NVARCHAR(MAX), @ParmDefinition NVARCHAR(MAX);
SET @ParmDefinition = N'@RemoteQualificationId INT, @RemoteCourseId INT, @RemoteModuleGrade INT, @RemoteCourseAcademicDataId INT OUTPUT';
SET @SQLString = N'
INSERT INTO [ServerName].[DatabaseName].[dbo].[TableName]
(
[RegYear],
[SemesterId],
[QualificationId],
[CourseId],
[AssessmentFinalGrade]
)
VALUES
(
YEAR(GETDATE()),
1,
@RemoteQualificationId,
@RemoteCourseId,
@RemoteModuleGrade
)
SET @RemoteCourseAcademicDataId = SCOPE_IDENTITY()'
EXECUTE sys.sp_executesql
@SQLString,
@ParmDefinition,
@RemoteQualificationId = @QualificationId,
@RemoteCourseId = @CourseId,
@RemoteModuleGrade = @ModuleGrade,
@RemoteCourseAcademicDataId = @CourseAcademicDataId OUTPUT;