输出从CTE插入行



我有一个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

最新更新