0

파일 이름이 내 테이블 "TBL_PAGO_DIARIO_Nextel"에 업로드되었는지 확인해야합니다.대용량 파일의 유효성을 검사하는 방법 sql은 무엇입니까?

내가 SSIS

테이블에서 업로드 된 파일의 이름으로 이미 테이블이 시작은 다음과 같습니다

tbl_filenames 내가 필요

RC196012070801
RC196017080401

"RC196012070801, RC196017080401"이 이미 내 테이블 "TBL_PAGO_DIARIO_Nextel"에있는 경우 각각을 검증합니다. . 저장소 프로 시저로 수행 할 생각이 있지만 정확히 어떻게 알지 못합니다. 예를 들어 첫 번째 테이블이 "TBL_PAGO_DIARIO_Nextel"테이블에 이미 입력되어 있으면이를 삽입하고 단순히 messague를 표시하고 두 번째 및 에.

create procedure sp_validateFile_Entel 
@nomfile varchar(14) 
as 

declare @ncant int 

select @ncant = count(*) from TBL_PAGO_DIARIO_Nextel where s_Empresa_Code = 'cperu' and s_Nombre_Vol = @nomfile 

이 단지 하나 개의 파일을 수락하고 나는 그것을 필요 .I 필요가 1-1을 읽고 그들 중 일부는 충전 된 경우에 제발 도와주세요 확인 해달라고 :

나는 지금 그 일을하고있다.

감사합니다 !!!

+0

방법이다 기존 테이블의 데이터를 사용하여 삽입하려면 존재하지 않는 경우 한 번에 하나 개의 파일을 삽입하려면 1 옵션 한 번에 SQL 2005, 2008 및 2012를 동시에 사용하십니까? 스팸성 태그를 사용하지 마십시오 ... 또한 여기에서 "청구 됨"을 어떻게 사용하고 있는지 이해할 수 없습니다. 파일이 수정 된 것처럼 변경되었음을 의미합니까? –

+0

질문이 전혀 명확하지 않습니다. 그러나 그 동안에는 sp_와 다른 접두사를 고려해야합니다 (또는 전혀 접두어가없는 것이 더 좋습니다). sp_ 접두사로 인해 문제가 발생할 수 있습니다. http://sqlperformance.com/2012/10/t-sql-queries/sp_prefix –

+0

질문에 도움이되도록 좀 더 자세한 정보가 필요합니다. 여기서 시작하는 것이 좋습니다. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

답변

0

만 이미

IF OBJECT_ID('dbo.usp_validateFile_Entel') IS NULL 
    EXEC ('CREATE PROCEDURE dbo.usp_validateFile_Entel AS RETURN 0;'); 
GO 
ALTER PROCEDURE dbo.usp_validateFile_Entel 
@nomfile VARCHAR(14) 
AS 
BEGIN 
    --Only insert new record if @nomfile does NOT exist already 
    IF NOT EXISTS (SELECT 1 FROM TBL_PAGO_DIARIO_Nextel WHERE s_Empresa_Code = 'cperu' AND s_Nombre_Vol = @nomfile) 
    BEGIN 
     INSERT INTO TBL_PAGO_DIARIO_Nextel(
      s_Empresa_Code, s_Nombre_Vol 
     ) 
     VALUES(
      'cperu', @nomfile 
     ); 
    END; 
END 

옵션 2 은 [tbl_filenames]

--Create the tables 
IF OBJECT_ID('TBL_PAGO_DIARIO_Nextel','U') IS NOT NULL 
    DROP TABLE TBL_PAGO_DIARIO_Nextel; 
IF OBJECT_ID('tbl_filenames','U') IS NOT NULL 
    DROP TABLE tbl_filenames; 

CREATE TABLE TBL_PAGO_DIARIO_Nextel (s_Empresa_Code VARCHAR(20), s_Nombre_Vol VARCHAR(14)) 

CREATE TABLE tbl_filenames (FileNames VARCHAR(14)) 

--Insert some temp values 
INSERT INTO dbo.tbl_filenames (FileNames) 
    VALUES ('RC196012070801'), ('RC196012070801') 

--Create the Procedure 
IF OBJECT_ID('dbo.usp_validateFile_Entel') IS NULL 
    EXEC ('CREATE PROCEDURE dbo.usp_validateFile_Entel AS RETURN 0;'); 
GO 
ALTER PROCEDURE dbo.usp_validateFile_Entel 
    --Input Parameters 
AS 
BEGIN 

    --Only exist if data doesn't exist already 
    INSERT INTO TBL_PAGO_DIARIO_Nextel(
     s_Empresa_Code, s_Nombre_Vol 
    ) 
    SELECT 'cperu', T.FileNames 
    FROM 
     dbo.tbl_filenames T 
    WHERE 
     NOT EXISTS 
      ( SELECT P.s_Nombre_Vol 
       FROM TBL_PAGO_DIARIO_Nextel P 
       WHERE P.s_Empresa_Code = 'cperu' 
       AND P.s_Nombre_Vol = T.FileNames 
      ) 
END ; 
GO 

--Exexute the Procedure 
EXEC dbo.usp_validateFile_Entel 

--Check the Results in the table 
SELECT * FROM TBL_PAGO_DIARIO_Nextel 

--Drop the tables 
IF OBJECT_ID('TBL_PAGO_DIARIO_Nextel','U') IS NOT NULL 
    DROP TABLE TBL_PAGO_DIARIO_Nextel; 
IF OBJECT_ID('tbl_filenames','U') IS NOT NULL 
    DROP TABLE tbl_filenames; 
관련 문제