此代碼不起作用內,返回錯誤:爲什麼我不能創建一個視圖BEGIN ... END塊
BEGIN
CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy
END
GO`
Incorrect syntax near the keyword 'VIEW'.
爲什麼?
注:
GO語句 的存在,似乎沒有什麼區別
內聲明的工作代碼塊分隔符的罰款之外。
這是一個較大的查詢的一部分,但是 單獨測試,就像它在此處顯示的 一樣。
此代碼不起作用內,返回錯誤:爲什麼我不能創建一個視圖BEGIN ... END塊
BEGIN
CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy
END
GO`
Incorrect syntax near the keyword 'VIEW'.
爲什麼?
注:
GO語句 的存在,似乎沒有什麼區別
內聲明的工作代碼塊分隔符的罰款之外。
這是一個較大的查詢的一部分,但是 單獨測試,就像它在此處顯示的 一樣。
這是因爲如this MSDN reference中所述,CREATE VIEW必須是批處理中的第一條語句。
取而代之,您可以: 例如
.....
BEGIN
EXECUTE('CREATE VIEW [dbo].[dummy] AS SELECT 1 AS Dummy')
END
我看到了那篇文章,但認爲'batch'指的是BEGIN和END之間的代碼 - 所以一批代碼是GO關鍵字的唯一分隔符? – 2010-06-28 16:10:33
您可以使用三種方式創建臨時視圖。
1- AdaTheDev答案。
2-創建臨時表,然後在其中插入值,例如create Table #TableName (ID integer)
。 See this Link
3-使用通用表達式[With]。 See this Link
是否有一個原因,你試圖把它放在BEGIN ... END塊內? – 2010-06-28 16:04:35
其if條款的內容 – 2010-06-28 16:29:15
您希望在什麼情況下有條件地創建視圖?這聽起來像你正在使用視圖不正確。 – Gabe 2010-06-28 17:19:37