0
다음 코드를 반환하는 SP가 있습니다. TableName, IdentityColumnName, CodeColumn 및 ConditionColumn을 전달합니다. 간단한 것은 동적 쿼리 결과를 변수에 저장하고이 쿼리가 단일 값을 반환한다는 것입니다. 이 SP는 3 개의 테이블에서 작동합니다. 문제는 내 동적 쿼리가 @query
변수, 모든 도움말로 설정되어 있지 않습니다.동적 쿼리 결과를 변수로 복원
ALTER PROC [dbo].[usp_GetNextCode]
(
@IdColumnName nvarchar(20)= 'HeadId',
@CodeColumnName nvarchar(100)= 'HeadCode',
@TableName nvarchar(50)= 'Head',
@MaxColumnName varchar(50) = 'FamilyId',
@MaxColumnValue varchar(3) = 1
)
AS
BEGIN
DECLARE @query varchar(max) , @NewId VARCHAR(30),@LastCode varchar(30)
---First Get the Last Inserted Code and save it in a Variable..
SET @query = 'Select '+ @LastCode +'='+ @CodeColumnName +'
FROM Account.' + @TableName
+ ' Where ' + @IdColumnName + ' = (
SELECT MAX(' + @IdColumnName + ' )
FROM Account.' + @TableName +'
where '+ @MaxColumnName + ' = ' + @MaxColumnValue +')'
Select @query
EXEC(@query)
Select @LastCode
END
Msg 214, 수준 16, 상태 2, 프로 시저 sp_executesql, 줄 1 프로 시저 'ntext/nchar/nvarchar'형식의 '@statement'매개 변수가 필요합니다. 위의 오류 –
이 표시됩니다 ... –
고맙습니다. –