SQL을 실행하려고하면 @Status 매개 변수의 값이 텍스트이므로 작은 따옴표로 값을 지정하지 않습니다. 따라서이 오류는 입니다.은 잘못된 열 이름입니다.동적 SQL을 사용하는 SQL Server의 열 이름이 잘못되었습니다.
DECLARE
@ID int,
@Status varchar(150),
@StandardOutput varchar(max) = NULL,
@StandardError varchar(max) = NULL,
@Query Varchar(max),
@S1 varchar(max),
@S2 varchar(max),
@S3 varchar(max)
SET @Status = N'Running'
SET @StandardError = N'So2234'
SET @StandardOutput = Null
SET @S1 = ''
SET @ID = 1
--DECLARE @S1 varchar(max)
--SET @S1 = N' '
IF @Status IS NOT NULL
BEGIN
SET @S1 = (N', dbo.JobQueue.Status = ' + @Status);
END
IF @StandardError IS NOT NULL
BEGIN
SET @S1 = @S1 + N', dbo.JobQueue.StandardError = ' + @StandardError
END
IF @StandardOutput IS NOT NULL
BEGIN
SET @S1 = N', dbo.JobQueue.StandardOutput = ' + @StandardOutput
END
SET @S1 = (N' UPDATE dbo.JobQueue SET ' + SUBSTRING(@S1, 2, LEN(@s1))) + ' ';
SET @S1 = @S1 + N' WHERE dbo.JobQueue.ID = ' + CONVERT(VARCHAR(12), @ID);
SELECT @S1
EXEC(@S1)
메시지 207, 수준 16, 상태 1, '실행'1 호선
잘못된 열 이름입니다.
메시지 207, 수준 16, 상태 1, 줄 1
잘못된 열 이름을 인쇄 @의 S1의 'So2234'
결과
UPDATE dbo.JobQueue SET dbo.JobQueue.Status = Running, dbo.JobQueue.StandardError = So2234 WHERE dbo.JobQueue.ID = 1
@ S1 인쇄시 결과를 공유 할 수 있습니까? – HLGEM
print @ S1 Result로 업데이트했습니다. – Mitul