Al utilizar SqlBulkCopy en una tabla con una clave principal GUID y newsequentialid predeterminado()¿Cómo se puede usar SQLBulkCopy en una tabla con una clave principal GUID y por defecto newsequentialid()?
por ejemplo
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]
con el código C#
tran = connection.BeginTransaction();
SqlBulkCopy sqlCopy = new SqlBulkCopy(connection,SqlBulkCopyOptions.Default, tran);
sqlCopy.DestinationTableName = "MyTable";
sqlCopy.WriteToServer(dataTable);
Te da un error ...
columna 'MyPrimaryKey' no permite DBNull.Value
He intentado manipular las SqlBulkCopyOptions. Lo único que funciona es establecer el campo MyPrimaryKey para permitir nulos y eliminar la clave principal.
Alguien sabe si hay una solución para este problema? ¿O puede verificar que no haya una solución (aparte de cambiar la estructura de la tabla)?
Excelente, ¡¡¡esto me ayudó !!!!! – HaBo
JRummell, ¿la columna GUID generará automáticamente un nuevo valor para cada fila insertada mediante el comando SQLBULKCOPY? Gracias por adelantado. –