我有一個要求,在我的查詢中不使用#tempTables,因爲將來我們不會對預期的數據庫有寫訪問權限。所以我用CTE替換了我的#tempTables。但我仍然懷疑它是否會在這種情況下發揮作用。我們是否需要WRITE訪問數據庫才能使用CTE(公用表表達式)
所以你可以告訴我,CTE是否需要WRITE訪問數據庫?
Please refer my earlier post for clarity
我有一個要求,在我的查詢中不使用#tempTables,因爲將來我們不會對預期的數據庫有寫訪問權限。所以我用CTE替換了我的#tempTables。但我仍然懷疑它是否會在這種情況下發揮作用。我們是否需要WRITE訪問數據庫才能使用CTE(公用表表達式)
所以你可以告訴我,CTE是否需要WRITE訪問數據庫?
Please refer my earlier post for clarity
不,CTE是一個簡單的SQL構造,可以讓你更多的權力和靈活性,在查詢
或者
號的CTE僅選擇的,因此沒有寫入權限是由需要:不隱含或顯式創建,不插入或更新
好的,感謝您的快速回復:) – Jaikrat 2013-05-08 10:47:45
嘿@gbn,有關在CTE上使用INDEXES的任何想法?如果是,那麼如何。我正在使用下面的代碼不工作。 ;具有CTE1如( \t SELECT COL1,COL2,從表 COL3) CTE2如( SELECT COL1,COL2,COL3,從otherTable COL4) 創建CTE1(COL1,COL2,COL3)指數index1之間 在CTE2(col1,col2,col3,col4)上創建索引PSIXNSRTTable 從CTE1中選擇{很多列},CTE2 因爲之前我在我的#tempTable上創建索引,只有少量列。 – Jaikrat 2013-05-08 11:06:20
@Jai:你不能在CTE中創建索引。你必須使用基表索引 – gbn 2013-05-08 11:14:31
您正在使用哪些DBMS? Postgres的?甲骨文? (雖然我懷疑是否有任何DBMS在使用CTE時需要寫訪問權限) – 2013-05-08 10:43:35
@a_horse_with_no_name,是的Oracle – Jaikrat 2013-05-08 10:45:34