2016-04-27 77 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的名稱。你不能改變任何東西...