我有一个CTE,我需要用已插入的行填充该CTE。
我尝试使用临时表。
我不确定如何在CTE中创建临时表并填充CTE。
这是我尝试的:
WITH RESULT AS
(
DECLARE @INSERTOUTPUT1 TABLE
(
BOOKID INT,
BOOKTITLE NVARCHAR(50),
MODIFIEDDATE DATETIME
);
-- INSERT NEW ROW INTO BOOKS TABLE
INSERT INTO BOOKS
OUTPUT INSERTED.* INTO @INSERTOUTPUT1
VALUES(101, 'ONE HUNDRED YEARS OF SOLITUDE', GETDATE());
SELECT * FROM @INSERTOUTPUT1
)
SELECT * FROM RESULT
下面是表的架构:
DROP TABLE dbo.Books;
CREATE TABLE dbo.Books
(
BookID int NOT NULL PRIMARY KEY,
BookTitle nvarchar(50) NOT NULL,
ModifiedDate datetime NOT NULL
);
您不能在CTE
内具有declare
语句。它应该是单独的陈述。不确定您想要的CTE在那里做什么?但是不需要CTE
DECLARE @INSERTOUTPUT1 TABLE
(
BOOKID INT,
BOOKTITLE NVARCHAR(50),
MODIFIEDDATE DATETIME
);
INSERT INTO Books
OUTPUT INSERTED.* INTO @INSERTOUTPUT1
VALUES(101, 'ONE HUNDRED YEARS OF SOLITUDE', GETDATE());
select *
from @INSERTOUTPUT1