2010-08-02 7 views
0

다음은 32 비트 시스템 (SQL Server 2005)에서 올바르게 작동하고 64 비트 컴퓨터에서 작동해야하는 몇 가지 샘플 코드입니다. 조금 ... 나는 이것이 일반적인 문제이지만 그것을 고치는 법을 찾을 수 없었던 것을 안다!32 비트에서 64 비트로 이동하는 방법, 연결된 서버 (sp_addlinkedserver) 작업 방법

DECLARE @sourceFile varchar(255), @testRows int 

    SELECT @sourceFile = @xmlInfo.value('(/SelectFile/DataSource)[1]', 'VARCHAR(100)') 
    EXEC sp_addlinkedserver 'SomeData', 'Excel', 'Microsoft.Jet.OLEDB.4.0', @sourceFile, '', 'Excel 8.0', '' 

    IF @xmlInfo.exist('/SelectFile/DataSource') = 1 
    BEGIN 
    EXEC(' INSERT INTO TableTest 
     SELECT col1_Id, col2, Replace(col3, '' '', '''') 
     FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
      ''Excel 8.0;HDR=Yes;Database='[email protected]+''', [Sheet1$])') 
    SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT 
    END 

내가 밖으로 시도하고 또 다른 것은 bcp 유틸리티를 사용하여 테이블에서 .fmt 파일을 작성하는 것입니다, 그래서 파일의 형식이 읽을 정의 할 수 있습니다.

도움이 될 것입니다.

+0

가능한 복제본 [32 비트에서 64 비트 컴퓨터로 이동, 연결된 서버 작업 방법] (http://stackoverflow.com/ 질문/3389510/32 비트에서 64 비트 컴퓨터로 이동하는 방법 - 서버 연결 방법) –

+0

안녕하세요, 예, 중복 된 것입니다. 삭제 방법을 모르겠습니다. 이전 하나! 64 비트 시스템에서 sp_addlinkedserver 시스템 프로 시저를 실행하여 위에서 언급 한 매개 변수를 전달하는 방법이 있는지 알고 싶습니다. Excel 데이터 (sourceFile)를 가져 와서 'TableTest'라고 말하면 테이블에 결과를 놓으려고합니다. 저는이 문제에 익숙하지 않으므로 아마도 제 질문은 모호합니다. 도움 주셔서 감사합니다! – Amy

답변

0

Excel 용 32 비트 드라이버가 있다고 생각합니다. 그래서 당신이 그 드라이버를 사용하는 링크드 서버를 사용할 수 있을지 모르겠습니다.

가장 좋은 방법은 데이터 가져 오기 마법사를 사용하여 데이터를 가져 와서 패키지를 저장하는 것입니다 (마법사의 마지막 단계 중 하나). 그런 다음 패키지를 다시 실행하여 데이터를 새로 고칠 수 있습니다. 클라이언트 도구는 모두 32 비트이므로 32 비트 드라이버를 사용하는 데 문제가 없습니다.

관련 문제