SqlBulkcopy .net 4.0 대상 테이블에 액세스 할 수 없습니다.

ado.net c# sqlbulkcopy

문제

나는 한 서버에서 다른 서버로 테이블 데이터를 복사해야하는 .net 프로그램을 작성했다. 그러나 나는 오류가 발생합니다 :

대상 테이블 "mytable"에 액세스 할 수 없습니다.

인터넷 검색 및 사방에 보이는에도 불구하고 내가 받고있는 오류에 대한 해결책을 찾을 수 없습니다

일부 게시물은 사용 권한을 언급하고 다음을 수행했습니다.

GRANT SELECT, UPDATE, DELETE, INSERT TO bulkadmin

그러나 여전히 성공하지 못했습니다.

나는 그 명백한 것을 놓치고 있습니까?

도움말 크게 감사드립니다.

편집하다

나는 1000 개의 표를 가진 3 개의 데이터베이스를 01 "목표"데이터베이스로 대량 복사합니다. 내가 사용하는 코드를 단순화했으며 운이 없다고 테스트했습니다. 의도는 병렬로 수행하는 것입니다. 그러나 먼저 간단한 테이블을 사용하여 작업하도록하고 싶습니다.

private void TestBulkCopy(string sourceServer, string sourceDatabase, List<string> sourceTables)
    {
            string connectionStringSource = ConfigurationManager.ConnectionStrings["TestDB"].ConnectionString;
            string connectionStringTarget = ConfigurationManager.ConnectionStrings["TestDB"].ConnectionString;

            string sqlGetDataFromSource = string.Format("SELECT * FROM  {0}", "testTable");

            using (var sourceConnection = new SqlConnection(connectionStringSource))
            {
                sourceConnection.Open();
                using (var cmdSource = new SqlCommand(sqlGetDataFromSource, sourceConnection))
                using (SqlDataReader readerSource = cmdSource.ExecuteReader())
                {
                    using (var sqlTargetConnection = new SqlConnection(connectionStringTarget))
                    {
                        sqlTargetConnection.Open();

                        using (var bulkCopy = new SqlBulkCopy(sqlTargetConnection, SqlBulkCopyOptions.TableLock, null))
                        {
                            bulkCopy.DestinationTableName = "testTable";
                            bulkCopy.SqlRowsCopied += OnSqlRowsCopied;
                            bulkCopy.BatchSize = 2600;
                            bulkCopy.NotifyAfter = 50;
                            bulkCopy.BulkCopyTimeout = 60;
                            bulkCopy.WriteToServer(readerSource);
                        }
                    }
                }
            }
        }
    }

인기 답변

테이블 이름 앞에 스키마 작성

변화

bulkCopy.DestinationTableName = "testTable";

bulkCopy.DestinationTableName = "dbo.testTable";


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