Ich habe die folgenden TabellenSyntax für Identität einfügen FROM mit keine Spalten einfügen?
CREATE TABLE dbo.T_Comments_Paths
(
path_id bigint IDENTITY(1,1) NOT NULL
,CONSTRAINT [PK_T_Comments_Paths] PRIMARY KEY(path_id)
);
CREATE TABLE dbo.T_Comments
(
COM_Id int IDENTITY(1,1) NOT NULL
,COM_Text NATIONAL CHARACTER VARYING(255) NULL
,CONSTRAINT [PK_T_Comments] PRIMARY KEY(COM_Id)
);
definiert Wenn ich brauche eine Pfad-ID für einen Kommentar für einen Single-Wert zu erhalten, habe ich es wie folgt zu erreichen:
jedochDECLARE @outputTable TABLE (path_id bigint);
INSERT INTO T_Comments_Paths OUTPUT INSERTED.path_id INTO @outputTable DEFAULT VALUES;
SET @__pathuid = (SELECT TOP 1 id FROM @outputTable);
, Ich finde die Syntax zum Abrufen der eingefügten IDs (multiple) für eine Einfügung aus einer anderen Tabelle nicht.
z.B. Ich möchte, dies zu tun:
DECLARE @outputTable TABLE (path_id bigint, com_id bigint);
INSERT INTO T_Comments_Paths
OUTPUT INSERTED.path_id, com_id INTO @outputTable DEFAULT VALUES
FROM T_Comments
ergibt dies
"Falsche Syntax in der Nähe von FROM-Schlüsselwort"
Wie kann ich tun, dass (ohne Cursor)?
Hinweis: muss ich mit MySQL kompatibel sein, also kann ich nicht newid() verwenden, weil es keine UUID-Typ in MySQL ist, und ich will es auch nicht varchar oder varbinary verwenden ...
@Ivan Starostin: Das ist kein Duplikat, er fügt nur einen Wert ein. Habe diesen Beitrag auch gefunden. Das ist nicht was ich will. –
Haben Sie versucht, com_id mit INSERTED zu versehen? Also: OUTPUT INSERTED.path_id, INSERTED.com_id INTO @outputTable DEFAULT VALUES? –
@John Joseph: Ich füge com_id nicht in T_Comments_Paths ein, ich füge es nur zusammen mit dem generierten Autoid in die Ausgabetabelle ein. –