데이터베이스의 여러 테이블에있는 행에 대해 여러 가지 유효성 검사를 수행하는 작업이 있습니다. 검사가 실패하면 테이블에 실패를 기록합니다. 로깅되는 정보에는 테이블 이름, 실패한 행의 uniqueidentifier 값, 실패 확인 및 해당 시점에 실행중인 작업이 포함됩니다. 여기에 로그 내가 어떤 테이블에서는 jobID을 부여 실패한 행의 수를 반환하는 함수를 작성하고 싶습니다함수에서 결과 집합의 행 수를 반환하는 TSQL 함수
CREATE TABLE [tblSY_ValidationFieldFailures](
[pkValidationFieldFailure] [int] IDENTITY(1,1) NOT NULL,
[fkJobID] [int] NOT NULL,
[fkValidationFieldFailureType] [int] NOT NULL,
[TableName] nvarchar(128),
[TableUniqueIdentifier] [nvarchar](100) NULL)
(즉 fnGetNumberOfFailedRows (@JobID, @tablename))의 단순화 된 테이블 정의입니다. 나는 다음과 비슷한 것을 시도했다.
물론 함수 내에서 Select 문을 사용할 수 없다. 함수 내부에서 원하는 것을 수행 할 수있는 방법이 있습니까? 아니면 저장 프로 시저 경로를 사용해야합니까?
감사합니다. 별칭을 사용하지 않고 이것을 시도한 후에 구문 오류가 발생했습니다. 왜 마지막에 a가 필요한지 아십니까? –
기꺼이 도와 드리겠습니다. 왜 모든 필드가 정규화 될 수 있어야한다는 것을 제외하고 별칭이 필요한지 정확하게 말할 수는 없습니다 (대부분 엔진이 이것을 처리합니다). 그리고 파생 된 이름 table/resultset, 참조 된 필드의 소스 이름이 없습니다. 그래도 추측. –