2011-03-28 47 views
0

條款是否有可能在視圖INTO子句中使用?我嘗試了它類似下面,SQL INTO在瀏覽

SELECT [ApplicantId],[KSAId], [精確] + [速]爲 '分數', [TimeCompleted] INTO TEMP2 FROM表1 WHERE 是TimeCompleted不爲空

,但它引發我一個錯誤,不正確的語法關鍵字 '到' 附近。

+0

您不能在視圖的定義中使用select INTO,但可以根據特定條件更新視圖:http://msdn.microsoft.com/en-us/library/ms187956.aspx – 2011-03-28 09:46:18

+0

什麼是RDBMS你使用的是什麼,這裏的答案可能會有所不同,因爲對可更新視圖的支持在它們之間差異很大。 – 2011-03-28 10:13:11

回答

2

  • 視圖是隻選擇
  • TEMP2將具有視圖
  • 以外沒有任何範圍,這是一個存儲過程
  • ...
+0

可更新視圖....? – 2011-03-28 09:43:06

+0

可更新視圖的意思是「更新視圖集...」。不是「SELECT .. INTO ...」在視圖內 – gbn 2011-03-28 09:46:01

+1

我知道這一點。您發表聲明「一個視圖只是一個SELECT」,很容易被誤解。 – 2011-03-28 09:47:07

0

在什麼DBMS?如果您定義了INSTEAD OF INSERT觸發器,有些可能會成爲可能。

1

如果你想創建一個基於選擇一個新的表,你應該使用

CREATE TABLE temp2 
AS 
SELECT ..... 

這句話的SQL Server版本基本上是什麼,你已經做了。然後,我只注意到,您正在使用單引號引用計算的列別名。我認爲,SQL Server和這裏的標準要求,並且需要雙引號(或那些可怕的方括號中):

SELECT [ApplicantId], 
     [KSAId], 
     [Accurate]+[Speed] as "Score", 
     [TimeCompleted] 
    INTO temp2 
FROM Table1 
WHERE TimeCompleted Is not Null 

如果不工作,那麼你是不是告訴我們整個故事。

+0

當我像你說的那樣在View中修改上述查詢時,創建表temp2 AS(SELECT [ApplicantId],[KSAId],[Accurate] + [Speed] as'Score',[TimeCompleted] INTO temp2 FROM Table1 WHERE TimeCompleted Is不是空)它也顯示AS錯誤不正確的語法AS – Nanda 2011-03-28 09:53:46

+0

@Nanda:你正在使用哪些DBMS? – 2011-03-28 11:15:57

+0

SQl Server 2008 – Nanda 2011-03-28 11:55:57