Wie werden die Daten mit SSIS für sequentielle guids importieren?
-
25-09-2019 - |
Frage
Gibt es trotzdem zu importieren Daten in SSIS, wo ich die PKs erwarten sequentielle guids sein?
Die einzige Methode, die ich in der Lage bin, mit so weit zu kommen ist eine temporäre Tabelle mit der Spalte säumigen zu newsequentialid()
Laden dort die Daten zu erstellen, dann kopieren Sie den richtigen Tisch. Dies ist nicht sehr elegant und ist etwas zeitaufwändig von einem paar zusätzlichen Schichten in meinen Paketen hinzuzufügen, die diese aufzunehmen.
Lösung
I don t verwenden GUIDs als PKs kann aber nicht festgelegt Sie NEWSEQUENTIALID () als Standardwert, dann ist jede Einlage Ihre datbase werden, dass die Verwendung
.Andere Tipps
Haben Sie schauen auf der OUTPUT-Klausel ?
Grundsätzlich Sie Ausgang alles, was (einschließlich Identitätsfelder) in eine Tabelle Variable oder eine temporäre Tabelle eingefügt wurde. Sie können es nicht direkt in einer anderen Tabelle einfügen, wenn die andere Tabelle, die eine Fremdschlüsselbeziehung hat. Jedes Mal, wenn ich es benutzt habe, habe ich eine temporäre Tabelle und dann von dort in den untergeordneten Tabelle eingefügt.
Hier ist ein Beispiel für die Verwendung:
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