反正是有将数据导入到SSIS,我期待的PK是连续的GUID?

我已经能够拿出迄今唯一的方法是创建一个临时表列默认为newsequentialid()加载数据在那里,然后将其复制到正确的表。这不是非常优雅,有些时间不必增加一堆额外层的在我的封装,以适应这个的耗时。

有帮助吗?

解决方案

我不;吨使用的GUID作为的PK,但你不能设置NEWSEQUENTIALID()作为默认值,则任何插入到你的datbase将使用

其他提示

你有没有看了 OUTPUT子句

基本上,已插入(包括标识字段)到表变量或一个临时表你输出任何东西。您不能直接将其插入到另一张表,如果其他表中有一个外键关系。每当我已经用它,我用一个临时表,然后从那里插入到子表。

下面是其使用的一个示例:

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top