C# 코드GUID 기본 키와 기본 newsequentialid()가있는 테이블에서 SQLBulkCopy를 사용하는 방법은 무엇입니까?
tran = connection.BeginTransaction();
SqlBulkCopy sqlCopy = new SqlBulkCopy(connection,SqlBulkCopyOptions.Default, tran);
sqlCopy.DestinationTableName = "MyTable";
sqlCopy.WriteToServer(dataTable);
당신에게 오류를 제공과 함께 GUID 기본 키 및 기본 NEWSEQUENTIALID()
예를 들어
CREATE TABLE [dbo].[MyTable](
[MyPrimaryKey] [uniqueidentifier] NOT NULL CONSTRAINT [MyConstraint] DEFAULT (newsequentialid()),
[Status] [int] NULL,
[Priority] [int] NULL,
CONSTRAINT [PK_MyTable] PRIMARY KEY NONCLUSTERED
(
[MyPrimaryKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
와 함께 테이블에 SqlBulkCopy의를 사용하는 경우 ...
열 'MyPrimaryKey'는 DBNull.Value를 허용하지 않습니다.
나는 SqlBulkCopyOptions을 노려 보았습니다. 작동하는 유일한 방법은 null을 허용하고 기본 키를 제거하도록 MyPrimaryKey 필드를 설정하는 것입니다.
이 문제의 해결 방법이 있다면 누구든지 알 수 있습니까? 또는 (테이블 구조 변경 이외의) 해결 방법이 없다는 것을 확인할 수 있습니까?
우수,이 도움이되었습니다 !!!!! – HaBo
JRummell, GUID 열은 SQLBULKCOPY 명령을 통해 삽입 된 각 행에 대해 새 값을 자동으로 생성합니까? 미리 감사드립니다. –