1

Sql Server 2008에서 Excel/CSV 파일로 데이터를 내보낼 필요가 있습니다.OPENROWSET 대 BCP

I가 그 두 가지 옵션 :

  • OPENROWSET
  • 데이터의 양이 크고 우려가 보안 경우 더 좋은 옵션이 될 것 BCP

?

+0

당신이 명령 줄 BCP 도구를 사용하거나 SqlBulkCopy의 API를 사용하여 BULK INSERT 문을 사용하여 의미합니까? –

+0

또한 보안 우려 사항에 따라 다릅니다. OPENROWSET은 기본적으로 차단되어 있으므로 sp_configure를 사용하려면 먼저 사용하도록 설정해야합니다. –

+0

xp_cmdshell을 사용하여 BCP를 의미합니다. 둘 다 기본적으로 차단됩니다. 그리고 보안을 위해 BCP에 명령을 실행하기 위해 로컬 시스템 계정이 필요합니다. –

답변

2

여기에 비슷한 질문에 대한 좋은 의견이 있습니다 : http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=147861.

내 기대어가 BULK INSERT 쪽이 될 수 있지만 실제로 가장 좋은 방법은 두 가지 방법을 모두 시도하는 것입니다. 그러면 어느 것이 더 빠르는지 비교할 수있을 것이고, 보안 문제를 해결하기 위해 취해야 할 보안 문제를 알게 될 것이기 때문에 보안 문제에 더 잘 들어 맞는지 더 잘 이해하게 될 것입니다.

편집 : 내보내기하려고 했으므로 BULK INSERT가 작동하지 않습니다. BCP는 내가 생각하는 당신의 더 열심 인 선택 일 것이며, 대량 수출을 원한다면 BCP가 유일한 선택이라고 생각합니다. OPENROWSET은 대량 가져 오기를 sql에만 허용하지만 내보내기는 허용하지 않습니다.

참조 : BCP으로 http://msdn.microsoft.com/en-us/library/ms175937.aspx

+3

설명 Downvoter 신경? 나는 항상 내 실수를 배우기 쉽다. –

+0

OPENROWSET 또한 데이터를 내보내는 데 적합하며 개인적으로이 방법이 좋습니다 : http://www.mssqltips.com/sqlservertip/1202/export-data-from-sql-server-to-excel/ ... 이 경우 CSV 파일에는 '드라이버 기반'형식이 없으므로이 파일을 사용할 수 없습니다. – MAXE