SSMS에서 헤더를 사용하여 결과를 CSV **로 저장


13

SQL Server 2008 R2에서는 결과를 CSV로 저장하면 헤더가 없습니다. "Copy with Headers"로 복사하여 붙여 넣어이 문제를 해결하거나 헤더를 잡고 CSV 등으로 붙여 넣을 수 있지만 더 좋은 방법이 있습니까?


실제로이 작업을 수행하는 sp가 이상적 일 수 있습니다.
Kyle Brandt

헤더로 복사 한 다음 Excel에 붙여 넣기!

답변:


22

SSMS에서는 몇 가지 옵션을 변경해야합니다.

도구-옵션-쿼리 결과-SQL Server-결과를 그리드 (또는 텍스트)로-> 결과를 복사하거나 저장할 때 열 헤더 포함 .

변경된 설정은 새로운 쿼리 창에 적용되지만 기존 쿼리 창에는 적용되지 않습니다.


10

난 당신이 볼 명확하게 당신의 솔루션을 찾고 언급 SSMS 하지만 난이 도움이 경우 PowerShell은 솔루션을 제공 할 것이라고 생각 (SQLPS은 SSMS 2008 년 & 2008 R2의 내부에서 액세스 할 수 있습니다).

SQLPS (또는 SQL cmdlet 스냅인이있는 일반 PowerShell)를 사용하여 다음과 같이 실행할 수 있습니다.

Invoke-Sqlcmd -Query "sp_databases" -ServerInstance "LocalHost\R2" |
Export-Csv -Path "C:\temp\MyDatabaseSizes.csv" -NoTypeInformation

관심이 있다면이 예제를 계속 사용할 수 있습니다.


3

PowerShell 스크립트 접근 방식이 마음에 들면 PowerShell을 통해 SSMS에서 CSV로 내보내는 스크립트가 있습니다. 나는 지금까지 동적 SQL 스크립트를 가질 수 있다는 것을 좋아합니다. 텍스트와 SSMS가 스크립트로 인수로 전달하는 텍스트를 선택할 수 있습니다.

단점은 현재 창 연결을 통과하는 영리한 방법을 찾지 못했다는 것입니다. 현재 해결 방법은 연결 문자열 (예 : PROD_DW, PROD_DB, TEST_DW ...)에서만 다른 다양한 도구를 설정하는 것입니다.


1

예를 들어, 실제 행에 대해 결합 된 단일 행 선택으로 열 헤더를 명시 적으로 추가하기 위해 모든 결합을 결합 할 수 있습니다.

SELECT 'col1' AS col1... 
UNION ALL 
SELECT T.col1... 
FROM TABLE T

이 접근 방식의 가장 큰 어려움은 두 번째 선택에서 문자로 캐스트 된 데이터 유형입니다.


-1

SSMS는 데이터 내보내기 도구가 아닙니다. 데이터 내보내기 도구로 설계된 가져 오기 / 내보내기 마법사 또는 BCP를 사용하여 원하는 작업을 수행하십시오.


그것이 사실이라면, 수출 옵션이 전혀 없어야합니다. 모든 소프트웨어의 경우 기능을 추가하면 제대로 작동합니다. 내보낼 때 SSMS 2008R2 이상이 해당 테스트에 실패합니다. 또한 SSMS는 실제로 OP의 요구를 충족시킬 수 있습니다.
Eric J.

2
SSMS 임시 데이터 내보내기 도구입니다. 예를 들어 Excel 로의 일회성 데이터 추출이 필요한 경우 SSMS가 가장 빠르고 쉬운 도구입니다. 내보내기 마법사를 시작하는 데 걸리는 시간에 쿼리를 실행하고 결과를 저장할 수 있습니다.
Greenstone Walker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.