Pregunta

¿Hay alguna forma para importar datos en SSIS, donde espero que el PK sean guids secuenciales?

El único método que he sido capaz de llegar a hasta ahora es crear una tabla temporal con la columna por defecto a la carga newsequentialid() los datos allí luego lo copia a la tabla correcta. Esto no es muy elegante y es un poco tiempo de tener que añadir un montón de capas adicionales en mis paquetes para acomodar esto.

¿Fue útil?

Solución

Me Don; t GUID uso como PK, pero no puede establecer que newsequentialid () como el valor por defecto, entonces cualquier inserto a su datbase utilizará ese

.

Otros consejos

¿Has mirado en la cláusula OUTPUT ?

Básicamente, cualquier cosa que la salida se inserta (incluyendo campos de identidad) en una variable de tabla o una tabla temporal. No se puede insertar directamente en otra mesa si la otra tabla tiene una relación de clave externa. Siempre que lo he utilizado, he utilizado una tabla temporal y luego se inserta desde allí a la tabla secundaria.

Aquí es un ejemplo de su uso:

DECLARE @roles TABLE (
    SecurityRoleId int
)

INSERT dbo.SecurityRole (
    SecurityRoleName,
    SecurityRoleDescription,
    LastUpdatedGuid
)
OUTPUT
    INSERTED.SecurityRoleId
INTO @roles
SELECT
    SecurityRoleName,
    SecurityRoleDescription,
    NEWID()
FROM @SecurityRole


INSERT INTO dbo.SecurityRoleDtl (
    SecurityRoleId,
    MemberSecurityRoleId
)
SELECT
    1,
    SecurityRoleId
FROM @roles
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top