在CTE表达式后插入语句

时间:2016-04-27 23:15:02

标签: sql sql-server

我在cte表达式之后有一个insert语句,如下所示

WITH d as 
(Select t1,t2 from test)

Insert into test2 (t1,t2) select t1,t2 from d

当我将此表达式作为查询运行时,此表达式正常工作,但我需要为此创建一个视图,当我在视图中使用它时,我得到错误“关键字'INSERT附近的语法不正确'”可能是什么问题?

2 个答案:

答案 0 :(得分:4)

如果您要创建一个查询视图,您需要插入,请使用此命令:

CREATE VIEW
        myview
AS
WITH    d as 
        (
        SELECT  t1, t2
        FROM    test
        )
SELECT  t1, t2
FROM    d

然后,您可以将该视图用作INSERT的来源,就像使用任何其他表一样:

INSERT
INTO    test2 (t1, t2)
SELECT  *
FROM    myview

答案 1 :(得分:1)

在RDBMS中,你有某事

的陈述
  • 插入
  • 删除
  • 改变
  • 创建
  • ...

您可以将它们放入Stored ProcedureTrigger

其他操作只读

  • 选择

您可以将其放入ViewFunction

VIEW是存储的SELECT的名称。你不能改变任何东西......