문제

SQL Server 2005 데이터베이스에서 일부 Blob 데이터를 가져 와서 SQL 스크립트를 생성하여 다른 서버에 다른 데이터베이스에 동일한 데이터를 삽입해야합니다.

SQL 스크립트를 사용 하여이 작업을 수행 할 수 있으며 다른 유틸리티를 사용하거나 Java 또는 .NET로 프로그램을 작성하여 수행 할 수 없습니다.

내가 가진 또 다른 큰 제한 사항은 스크립트를 실행할 때 원래 데이터베이스 (원래 블로브 데이터가있는 위치)에 액세스 할 수 없다는 것입니다. 블로브 데이터를 대상 데이터베이스에 복사하므로 데이터는 이미 내부에서 인코딩되어야합니다. SQL 스크립트 파일.

요약 : 스크립트 텍스트 파일 내에서 SQL 삽입 명령에 덤프하여 실행할 수 있도록 블로브 데이터를 텍스트로 인코딩하는 방법이 있습니까?

필요한 경우 특별한 T-SQL 문 및 저장 절차를 실행할 수 있습니다.

도움이 되었습니까?

해결책

TextCopy는 SQL Server 7.0 및 2000에 포함 된 샘플 응용 프로그램이지만 더 이상 SQL Server 2005에서 사용할 수 없습니다.

그러나 SQL Server 2005의 TextCopy에 대한 인터넷 검색을 통해이 대안을 찾았습니다.

http://sequelserver.blogspot.com/2007/01/texcopy-sql-server-2005.html

파일 시스템에서 이진 데이터를 작성하고 읽는 데 의존합니다.이 경우에는 이상적이지 않습니다 (이상적으로는 이진 데이터를 SQL 스크립트 텍스트 파일 자체로 인코딩하고 싶습니다).

다음은 Bulk OpenRowset을 사용하여 이진 가져 오기/내보내기 작업 방법에 대한 또 다른 좋은 소스입니다.http://msdn.microsoft.com/en-us/library/ms191184.aspx

다른 팁

이 기사 "SQL Server에 텍스트 또는 이미지를 복사합니다."도움이 될 수 있습니다 :

저장된 절차에서 TextCopy 명령 줄 도구를 통합 할 수 있습니다.

CREATE PROCEDURE sp_textcopy (
  @srvname     varchar (30),
  @login       varchar (30),
  @password    varchar (30),
  @dbname      varchar (30),
  @tbname      varchar (30),
  @colname     varchar (30),
  @filename    varchar (30),
  @whereclause varchar (40),
  @direction   char(1))

AS

DECLARE @exec_str varchar (255)
SELECT @exec_str =
         'textcopy /S ' + @srvname +
         ' /U ' + @login +
         ' /P ' + @password +
         ' /D ' + @dbname +
         ' /T ' + @tbname +
         ' /C ' + @colname +
         ' /W "' + @whereclause +
         '" /F ' + @filename +
         ' /' + @direction
EXEC master..xp_cmdshell @exec_str

생성 된 파일을 다른 데이터베이스로 읽으려면 약간 변경/확장해야합니다.

처럼 vinko 이 답변에 주석을 작성하여 표면적 구성에서 XP_CMDSHELL을 활성화해야한다는 점을 명심하십시오.

TextCopy에 대한 설명 :

단일 텍스트 또는 이미지 값을 SQL Server에 또는 외부로 복사합니다. 값은 지정된 '테이블'의 단일 행 ( "where clause로 지정 됨)의 지정된 텍스트 또는 이미지 '열'입니다.

방향이 (/i)에 있으면 지정된 '파일'의 데이터가 SQL Server에 복사되어 기존 텍스트 또는 이미지 값을 대체합니다. 방향이 출시되면 (/o) 텍스트 또는 이미지 값이 SQL Server에서 지정된 '파일'으로 복사되어 기존 파일을 대체합니다.

이 질문을 살펴보고 페이지에서 BCP를 검색하십시오 - Varbinary (Max)의 가져 오기 및 내보내기 (해당 열의 새로운 표준 유형)의 예제가 있습니다. 내보내기를 위해 임의의 쿼리를 실행할 수 있습니다.

SQL Server Management Studio를 사용하여 블로브를 데이터베이스에 삽입하는 방법

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top