2016-04-27 78 views
0

我有一个INSERT语句的CTE表达之后,如下Insert语句CTE表达后

WITH d as 
(Select t1,t2 from test) 

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

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

+3

你不能创建一个插入语句的视图 – Quassnoi

回答

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

在RDBMS你为报表做东西

  • 插入
  • 删除
  • 改变
  • 创建
  • ...

你可以把它们放进Stored ProcedureTrigger

其他动作只读

  • 选择

你可以把这个变成ViewFunction

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