Es wird versucht, eine Abfrage/SP zu erstellen, die Daten aus einer Tabelle aufnimmt und in mehrere Tabellen einfügt. Ich habe eine Haupttabelle, in die alles zu Beginn wie eine temporäre Tabelle eingefügt wird. je nach BedarfIn mehrere (7) Tabellen ohne Duplikate einfügen
Temp Tabelle
CREATE TABLE Employee
(
userID INT IDENTITY(1,1) NOT NULL,
userName VARCHAR(50) NULL,
FirstName VARCHAR(50) NULL,
LastName VARCHAR(50) NUll,
UserPassWd VARCHAR(50) NULL,
EmailId VARCHAR(100) NULL
CONSTRAINT PK_Employee PRIMARY KEY (userID)
)
als wenn Mitarbeiter überprüft wird er in mehrere Tabellen aufgeteilt werden, die nur ein Feld oder zwei aus der temporären Tabelle benötigen. Die UserEmail
Tabelle, die ich unten aufgeführt habe, ist eine der Tabellen. Ich versuche, es jetzt für einen Tisch zu arbeiten, und dann vermute ich, ich werde nur den Einfügeteil kopieren und den Tabellennamen und die Attribute zu den neuen Tabellen ändern
Hier ist was ich bisher habe.
DECLARE @EMAIL VARCHAR(100)
DECLARE @USERID INT
SELECT @USERID = userID
,@EMAIL = EmailId
FROM Employee
WHERE userID = 1004
INSERT INTO UserEmail
(
EmailAddress
,EmailTypeID
,ExternalUserID
,Active
,CreatedByID
,CreatedDate
,UpdatedByID
,UpdatedDate
)
SELECT @EMAIL -- Email Address
,1 -- Email Type
,1 -- ExternalUserID
,1 -- Active
,1 -- CreatedByID
,CURRENT_TIMESTAMP -- CreatedDate
,1
,CURRENT_TIMESTAMP -- UpdatedDate
FROM Employee X
WHERE 1=1
AND X.userID = '####'-- INSERT USERID HERE for testing
Dadurch wird der Datensatz in die Tabelle einfügen UserEmail
aber doppelte Benutzer erstellen, die ich so versucht haben kann ich nicht diese Zugabe, aber es nicht tut, was ich will es tun.
WHERE 1=1 AND NOT EXISTS( SELECT userID FROM Employee WHERE userID = 1004 )
Jede mögliche Anleitung oder Hilfe sehr geschätzt werden würde. Danke!
Wie wäre es einfach das Hinzufügen DISTINCT auf Ihre Anfrage überprüfen? –
Das ist eine gute Idee, krank geben Sie es. – whisk
Ich verstehe nicht viel von Ihrem Skript. Sie haben eine Tabelle, aus der Sie bestimmte Werte in verschiedene Tabellen einfügen müssen. Warum verwenden Sie nicht einfach eine 'in UserEmail SELECT einfügen'? Warum alle Variablen? 'EmailId' ist nicht in der'Emplyee'Tabelle, wie können Sie sie in' @EMAIL' auswählen? Warum hat die Tabelle "UserEmail" kein Attribut, das mit einem "Benutzer" verknüpft ist? Warum speichern Sie Datumsangaben auch als Ganzzahl? Und schließlich, was halten Sie für ein Duplikat? Sie fügen nur "EmailId" ein, der Rest ist nur Standardwerte, ist es wirklich eine 'EmailId' oder eine' EmailAddress'? – HoneyBadger