如何使用SSIS导入数据的顺序的GUID?
-
25-09-2019 - |
题
反正是有将数据导入到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
不隶属于 StackOverflow