나는 스케쥴에 대한 기본적인 쿼리를 실행하는 SQL 에이전트 작업을 가지고있다. 표시된 쿼리를 기반으로 정보를 업데이트합니다.SQL 에이전트 작업이 계속 실패하는 이유는 무엇입니까?
USE DB
DECLARE @startDate AS DATETIME
DECLARE @endDate AS DATETIME
DECLARE @rcount AS VARCHAR(10)
SET @startDate = CAST(CONVERT(VARCHAR(10),GETDATE(),112) AS DATETIME)
SET @endDate = CAST(CONVERT(VARCHAR(10),GETDATE(),112) AS DATETIME)
--*********************************************************
-- *Run Query
--*********************************************************
UPDATE Table1
SET Table1.field1 = 'ZPR' + Left(Table1.field1,6),
Table1.field2 = '0',
Table1.field3 = '0'
WHERE Table1.GUID IN (SELECT GUID FROM Table1 T2
WHERE T2.Date >= @startDate
AND T2.Date <= @endDate
AND T2.complete = 0)
AND Table1.co IN (SELECT co FROM VIEW('ZERO'))
SELECT @rcount = CAST(@@ROWCOUNT AS VARCHAR(10)) + ' ' + 'row(s) affected by UPDATE';
--*********************************************************
--* Print Results
--*********************************************************
DECLARE @eSubject varchar(250)
DECLARE @emailTo varchar(250)
SET @eSubject = 'Number of rows updated'
SET @emailTo = '[email protected]'
EXEC msdb.dbo.sp_send_dbmail @[email protected],
@subject = @eSubject,
@body = @rcount,
@body_format = 'HTML';
업데이트가 완료되지 않은 경우 작업이 완벽하게 실행되지만있을 때마다 실패합니다. 이 작업을 수행 한 사용자에게는 읽기 및 쓰기 권한이 있습니다. 오류는 "문자열 또는 이진 데이터가 잘릴 수 있습니다 [sql220001] [오류 8152]"입니다. 나는 왜 그것이 계속 실패하고 어떤 도움이 굉장 할 것인지 확신하지 못한다!
****************** UPDATE가 **********
내가 여기 미친거야. 예약 된 작업으로는 실패하지만 다른 사용자의 경우에는 곧은 쿼리로 완벽하게 실행됩니다. 필드는 같습니다
Table1.field1에 상관없이 내가 시도하거나 SQL 작업을하는 일 10 Table1.field2 = 1 Table1.field3의 비트 길이 = 1
의 비트 길이의 = PK 길이 같은 오류로 실패하지만 그것은 내가 그 자체로 쿼리를 실행할 수 있다는 것을 내게 알려주고 있으며 완벽하게 작동합니다.
Table1.field의 정의는 무엇입니까? 그것은 'ZPR'+ 왼쪽 (Table1.field, 7) – automatic
의 결과를 잡아두기에 충분하지 않은 것 같은데요. varchar (10) – BSanders