SqlBulkCopy가 Sql 선택에서 테이블을 생성 할 수 있습니까?

sqlbulkcopy

문제

SqlBulkCopy는 SELECT INTO와 같은 테이블을 만들 수 있습니까?

수락 된 답변

SqlBulkCopy 자체로 테이블을 만들 수없는 것 같습니다. 대상 테이블을 미리 정의해야합니다. 대상에 자동 증분 ID (int)가있는 경우 select 문에서 1을 사용합니다. 즉

SELECT 
    1, 
    [ColumnName],
    [ColumnName]...
FROM TABLENAME

SQL Server는 자동 증가를 자동으로 처리합니다.


인기 답변

위의 대답은 분명하지 않다고 생각합니다.

SQL로 테이블을 작성해야합니다. 다른 방법은 없습니다. 그리고 열 구조를 작성하는 것만으로도 소스가 동일한 서버에 있으면 매우 간단합니다. 이렇게하면됩니다.

Select * from source_table into destination_table where 1=2

원본이 동일한 서버에 없다면 (예 : Excel 또는 dbf 파일 등) 가장 쉬운 방법은 ODBC (또는 가능한 경우 SQL)를 사용하여 연결하는 것입니다.

    Select * from source_table where 1=2

결과를 DataTable에 수집합니다. 그런 다음 두 번째 단계에서 해당 테이블을 인수로 취한 다음 새 테이블에 삽입 할 대상 서버에 저장 프로 시저를 만들어야합니다.

좀 더 정확하게, SQL 프로 시저에 대해 이것을 시도하십시오. http://www.builderau.com.au/program/sqlserver/soa/Passing-table-valued-parameters-in-SQL-Server-2008/0,339028455,339282577 , 00.htm

그리고 C #에서 SqlCommand 개체를 만들고 SqlDbType.Structured 인 SqlParameter 매개 변수 컬렉션에 추가합니다.

나는 모든 세부 사항을 다루지는 않았지만 그것이 도움이되기를 바랍니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.