SQL Server 2008에서 쿼리 결과를 .csv 파일로 내보내려면 어떻게해야합니까?
답변
- SQL Server Management Studio를 엽니 다.
- 도구> 옵션> 쿼리 결과> SQL Server> 텍스트 결과로 이동하십시오.
- 맨 오른쪽에는 출력 형식이라는 드롭 다운 상자가 있습니다.
- 쉼표로 구분을 선택하고 확인을 클릭하십시오.
쿼리 결과가 쉼표로 구분 된 텍스트로 표시됩니다.
쿼리 결과를 파일로 저장하려면 : Ctrl + Shift + F
답변
나는 이것이 조금 오래되었다는 것을 알고 있지만 여기 훨씬 쉬운 방법이 있습니다 …
-
기본 설정으로 쿼리를 실행하십시오 (결과가 그리드 형식이 아닌 경우 그리드 형식으로 입력하십시오 (아래 참조)).
-
그리드 결과를 마우스 오른쪽 버튼으로 클릭하고 “결과를 다른 이름으로 저장”을 클릭하여 저장하십시오.
결과가 모눈 형식이 아닌 경우 쿼리를 작성하는 위치를 마우스 오른쪽 단추로 클릭하고 “결과”를 가리키고 “결과를 모눈”을 클릭하십시오.
열 머리글을 캡처하지 마십시오.
행운을 빕니다!
답변
PowerShell을 사용할 수 있습니다
$AttachmentPath = "CV File location"
$QueryFmt= "Query"
Invoke-Sqlcmd -ServerInstance Server -Database DBName -Query $QueryFmt | Export-CSV $AttachmentPath
답변
문제의 데이터베이스가 로컬 인 경우 다음은 쿼리 결과를 CSV 파일 로 내보내는 가장 강력한 방법 일 것입니다 (즉, 가장 많은 제어권을 제공함).
- 쿼리를 복사하십시오.
- 개체 탐색기에서 해당 데이터베이스를 마우스 오른쪽 단추로 클릭하십시오.
- “작업”>> “데이터 내보내기 …”를 선택하십시오.
- 데이터 소스를 구성하고 “다음”을 클릭하십시오.
- “플랫 파일”또는 “Microsoft Excel”을 대상으로 선택하십시오.
- 파일 경로를 지정하십시오.
- 플랫 파일로 작업하는 경우 원하는대로 구성하십시오. Microsoft Excel로 작업하는 경우 “Excel 2007″을 선택하십시오 (이전 버전의 행 수는 64k로 제한됨)
- “전송할 데이터를 지정하기 위해 쿼리 작성”을 선택하십시오.
- 1 단계의 쿼리를 붙여 넣습니다.
- 다음 >> 검토 맵핑 >> 다음 클릭 >> “즉시 실행”선택 >> “마침”을 두 번 클릭하십시오.
이 과정을 철저히 수행 한 후 다음 옵션이 최선의 방법이라는 것을 알았습니다.
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
그러나 몇 가지주의 사항이 있습니다.
-
Microsoft.ACE.OLEDB.12.0 공급자를 사용할 수 있어야합니다. Jet 4.0 공급자도 작동하지만 고대 버전이므로 대신 사용했습니다.
-
.CSV 파일이 이미 존재해야합니다. 헤더 (
HDR=YES
)를 사용 하는 경우 .CSV 파일의 첫 번째 줄이 모든 필드의 구분 된 목록인지 확인하십시오.