[sql-server-2008] SQL Server 2008에서 쿼리 결과를 .csv 파일로 내보내기

SQL Server 2008에서 쿼리 결과를 .csv 파일로 내보내려면 어떻게해야합니까?



답변

  1. SQL Server Management Studio를 엽니 다.
  2. 도구> 옵션> 쿼리 결과> SQL Server> 텍스트 결과로 이동하십시오.
  3. 맨 오른쪽에는 출력 형식이라는 드롭 다운 상자가 있습니다.
  4. 쉼표로 구분을 선택하고 확인을 클릭하십시오.

아래는 해당 이미지의 전체 화면 버전입니다.

여기에 이미지 설명을 입력하십시오

쿼리 결과가 쉼표로 구분 된 텍스트로 표시됩니다.

쿼리 결과를 파일로 저장하려면 : Ctrl + Shift + F


답변

나는 이것이 조금 오래되었다는 것을 알고 있지만 여기 훨씬 쉬운 방법이 있습니다 …

  1. 기본 설정으로 쿼리를 실행하십시오 (결과가 그리드 형식이 아닌 경우 그리드 형식으로 입력하십시오 (아래 참조)).

  2. 그리드 결과를 마우스 오른쪽 버튼으로 클릭하고 “결과를 다른 이름으로 저장”을 클릭하여 저장하십시오.

결과가 모눈 형식이 아닌 경우 쿼리를 작성하는 위치를 마우스 오른쪽 단추로 클릭하고 “결과”를 가리키고 “결과를 모눈”을 클릭하십시오.

열 머리글을 캡처하지 마십시오.

행운을 빕니다!


답변

PowerShell을 사용할 수 있습니다

$AttachmentPath = "CV File location"
$QueryFmt= "Query"

Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $QueryFmt | Export-CSV $AttachmentPath


답변

문제의 데이터베이스가 로컬 인 경우 다음은 쿼리 결과를 CSV 파일 로 내보내는 가장 강력한 방법 일 것입니다 (즉, 가장 많은 제어권을 제공함).

  1. 쿼리를 복사하십시오.
  2. 개체 탐색기에서 해당 데이터베이스를 마우스 오른쪽 단추로 클릭하십시오.
  3. “작업”>> “데이터 내보내기 …”를 선택하십시오.
  4. 데이터 소스를 구성하고 “다음”을 클릭하십시오.
  5. “플랫 파일”또는 “Microsoft Excel”을 대상으로 선택하십시오.
  6. 파일 경로를 지정하십시오.
  7. 플랫 파일로 작업하는 경우 원하는대로 구성하십시오. Microsoft Excel로 작업하는 경우 “Excel 2007″을 선택하십시오 (이전 버전의 행 수는 64k로 제한됨)
  8. “전송할 데이터를 지정하기 위해 쿼리 작성”을 선택하십시오.
  9. 1 단계의 쿼리를 붙여 넣습니다.
  10. 다음 >> 검토 맵핑 >> 다음 클릭 >> “즉시 실행”선택 >> “마침”을 두 번 클릭하십시오.

이 과정을 철저히 수행 한 후 다음 옵션이 최선의 방법이라는 것을 알았습니다.

PowerShell 스크립트

$dbname = "**YOUR_DB_NAME_WITHOUT_STARS**"
$AttachmentPath = "c:\\export.csv"
$QueryFmt= @"
**YOUR_QUERY_WITHOUT_STARS**
"@

Invoke-Sqlcmd   -ServerInstance **SERVER_NAME_WITHOUT_STARS** -Database  $dbname -Query $QueryFmt | Export-CSV $AttachmentPath -NoTypeInformation

관리자 권한으로 PowerShell 실행

& "c:\path_to_your_ps1_file.ps1"


답변

MS Excel-> 데이터-> 새 쿼리-> 데이터베이스에서 .. 단계를 수행하십시오.


답변

NS의 대답을 바탕으로 필드 주위에 따옴표와 쉼표로 구분 하여 CSV 파일로 내보내는 PowerShell 스크립트가 있으며 파일의 헤더 정보를 건너 뜁니다.

add-pssnapin sqlserverprovidersnapin100
add-pssnapin sqlservercmdletsnapin100

$qry = @"
Select
  *
From
 tablename
"@

Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $qry | convertto-CSV -notype | select -skip 1  > "full path and filename.csv"

처음 두 줄은 Invoke-SqlCmd 명령 을 사용할 수있게합니다.


답변

를 사용하여 T-SQL :

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\;HDR=YES;FMT=Delimited','SELECT * FROM [FileName.csv]')
SELECT Field1, Field2, Field3 FROM DatabaseName

그러나 몇 가지주의 사항이 있습니다.

  1. Microsoft.ACE.OLEDB.12.0 공급자를 사용할 수 있어야합니다. Jet 4.0 공급자도 작동하지만 고대 버전이므로 대신 사용했습니다.

  2. .CSV 파일이 이미 존재해야합니다. 헤더 ( HDR=YES)를 사용 하는 경우 .CSV 파일의 첫 번째 줄이 모든 필드의 구분 된 목록인지 확인하십시오.