繁体   English   中英

从CTE输出插入的行

[英]Output inserted row from 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM