I zostały zdefiniowane następujące tabeleSkładnia dla tożsamości-wstaw z FROM bez kolumn do wstawienia?
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)
);
Jeśli muszę dostać path-id o komentarz, dla pojedynczej wartości, mogę to tak:
DECLARE @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);
jednak Nie mogę znaleźć składni do wstawiania identyfikatorów (wielokrotnych) dla wstawki z innej tabeli.
np. Chcę, aby to zrobić:
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
to daje
"Niepoprawna składnia w pobliżu Z-słów kluczowych"
Jak mogę to zrobić (bez kursora)?
Uwaga: muszę być kompatybilne z MySQL, więc nie mogę używać newID(), ponieważ nie ma UUID typu MySQL, a nie chcę użyć varchar lub varbinary albo ...
@ Starostin: Nie jest to duplikat, wstawia tylko jedną wartość. Znalazłem również ten wpis. Nie tego chcę. –
Czy próbowałeś przedrostkiem com_id z INSERTED? Tak: OUTPUT INSERTED.path_id, INSERTED.com_id INTO @ outputTable DOMYŚLNE WARTOŚCI? –
@John Joseph: Nie wstawiam com_id do T_Comments_Paths, po prostu włączam to do tabeli wyjściowej, razem z wygenerowanym autoid. –